@flexis/ui
Version:
Styleless React Components
165 lines (142 loc) • 10.4 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 _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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0V4cGFuZC9FeHBhbmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFQLE1BUU8sT0FSUDs7Ozs7QUFTQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxTQUVDLElBRkQsRUFHQyxJQUhELEVBSUMsaUJBSkQsUUFLTyxlQUxQO0FBTUEsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLGlCQUhQO0FBS0EsY0FBYyxlQUFkO0FBQ0EsY0FBYyxpQkFBZDs7QUFtQkEsSUFBQSxNQUFBO0FBQUE7QUFBQSxZQUFBO0FBQUEsTUFBcUIsTUFBckI7QUFBQTs7QUF3Q0Msb0JBQVksS0FBWixFQUFpQjtBQUFBOztBQUFBOztBQUVoQixrRkFBTSxLQUFOO0FBRmdCLFVBS2YsYUFMZSxHQU1aLEtBTlksQ0FLZixhQUxlO0FBUWhCLFlBQUssS0FBTCxHQUFhO0FBQ1osUUFBQSxNQUFNLEVBQUU7QUFESSxPQUFiO0FBUmdCO0FBV2hCOztBQW5ERjtBQUFBO0FBQUEsK0JBcURPO0FBQUEsMEJBT0QsS0FBSyxLQVBKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosUUFKSSxlQUlKLFFBSkk7QUFBQSxZQUtKLFFBTEksZUFLSixRQUxJO0FBQUEsWUFNRCxLQU5DOztBQUFBLFlBU0osTUFUSSxHQVVELEtBQUssS0FWSixDQVNKLE1BVEk7O0FBQUEsZ0NBY0QsUUFBUSxDQUFDLE9BQVQsQ0FBaUIsUUFBakIsQ0FkQztBQUFBO0FBQUEsWUFZSixLQVpJO0FBQUEsWUFhSixPQWJJOztBQWdCTCxlQUNDLG1DQUNLLElBQUksQ0FBQyxLQUFELEVBQVEsQ0FDZixlQURlLEVBRWYsUUFGZSxFQUdmLFVBSGUsQ0FBUixDQURUO0FBTUMsVUFBQSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFULEVBQWU7QUFDOUIsWUFBQSxNQUFNLEVBQU4sTUFEOEI7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