UNPKG

calcite-react

Version:
68 lines (53 loc) 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _AccordionStyled = require("./Accordion-styled"); var _helpers = require("../utils/helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Accordion = function Accordion(_ref) { var children = _ref.children, activeSectionIndexes = _ref.activeSectionIndexes, onAccordionChange = _ref.onAccordionChange, iconPosition = _ref.iconPosition, other = _objectWithoutProperties(_ref, ["children", "activeSectionIndexes", "onAccordionChange", "iconPosition"]); var childArray = _react.default.Children.toArray(children); var childrenWithProps = childArray.map(function (child, i) { switch ((0, _helpers.getChildType)(child)) { case 'AccordionSection': var section; section = _react.default.cloneElement(child, { key: i, active: activeSectionIndexes.includes(i), sectionIndex: i, onAccordionChange: onAccordionChange, iconPosition: iconPosition }); return section; default: return child; } }); return _react.default.createElement(_AccordionStyled.StyledAccordion, other, childrenWithProps); }; Accordion.propTypes = { /** Used to render AccordionSections inside the Accordion. */ children: _propTypes.default.node, /** Indexes of the sections that are supposed to be active. */ activeSectionIndexes: _propTypes.default.array, /** Where the chevron is positioned in relation to the title */ iconPosition: _propTypes.default.oneOf(['start', 'end']) }; Accordion.defaultProps = { activeSectionIndexes: [], onAccordionChange: function onAccordionChange() {}, iconPosition: 'end' }; Accordion.displayName = 'Accordion'; var _default = Accordion; exports.default = _default;