UNPKG

@attivio/suit

Version:

Attivio SUIT, the Search UI Toolkit, is a library for creating search clients for searching the Attivio platform.

119 lines (97 loc) 3.94 kB
'use strict'; exports.__esModule = true; exports.default = exports.AccordionPanel = undefined; var _class2, _temp; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _Panel = require('react-bootstrap/lib/Panel'); var _Panel2 = _interopRequireDefault(_Panel); var _PanelGroup = require('react-bootstrap/lib/PanelGroup'); var _PanelGroup2 = _interopRequireDefault(_PanelGroup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Describes one panel for an Accordion component. The body can be either * an element or a simple string. */ var AccordionPanel = exports.AccordionPanel = function AccordionPanel(heading, key, body) { _classCallCheck(this, AccordionPanel); this.heading = heading; this.key = key; this.body = body; }; /** * This component presents a series of titled, collapsible panels, only one of which can be open at * any given time. */ var Accordion = (_temp = _class2 = function (_React$Component) { _inherits(Accordion, _React$Component); function Accordion() { _classCallCheck(this, Accordion); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Accordion.prototype.render = function render() { var panels = this.props.panels.map(function (panel) { var body = void 0; if (typeof panel.body === 'string') { body = _react2.default.createElement( 'div', null, panel.body ); } else { body = panel.body; } return _react2.default.createElement( _Panel2.default, { eventKey: panel.key, bsStyle: 'primary', key: panel.key, style: { border: 'none', borderBottom: '1px solid #ccc' } }, _react2.default.createElement( _Panel2.default.Heading, { style: { color: '#2f75b0', backgroundColor: 'white', border: 'none', borderBottom: '1px solid #2f75b0', borderRadius: '0px' } }, _react2.default.createElement( _Panel2.default.Title, { toggle: true }, panel.heading ) ), _react2.default.createElement( _Panel2.default.Body, { collapsible: true }, body ) ); }); if (panels.length > 0) { var _defaultPanelKey = this.props.defaultPanelKey ? this.props.defaultPanelKey : this.props.panels[0].key; return _react2.default.createElement( _PanelGroup2.default, { accordion: true, id: 'queryFrameDescriptionAccordion', defaultActiveKey: _defaultPanelKey }, panels ); } return null; }; return Accordion; }(_react2.default.Component), _class2.defaultProps = { defaultPanelKey: null }, _class2.displayName = 'Accordion', _temp); exports.default = Accordion; Accordion.AccordionPanel = AccordionPanel;