@uifabric/experiments
Version:
Experimental React components for building experiences for Microsoft 365.
38 lines • 1.32 kB
JavaScript
import { __assign } from "tslib";
/** @jsx withSlots */
import * as React from 'react';
import { withSlots, getSlots } from '../../Foundation';
import { createComponent } from '../../Foundation';
import { CollapsibleSection } from '../../CollapsibleSection';
import { styles } from './Accordion.styles';
var AccordionItemType = (withSlots(CollapsibleSection, null)).type;
var AccordionView = function (props) {
var collapseItems = props.collapseItems;
var children = React.Children.map(props.children, function (child, index) {
var defaultItemProps = {
defaultCollapsed: collapseItems,
};
if (child.type === AccordionItemType) {
return React.cloneElement(child, __assign(__assign({}, defaultItemProps), child.props));
}
return withSlots(CollapsibleSection, __assign({}, defaultItemProps),
" ",
child,
" ");
});
var Slots = getSlots(props, {
root: 'div',
});
return withSlots(Slots.root, null, children);
};
var AccordionStatics = {
Item: CollapsibleSection,
defaultProps: {},
};
export var Accordion = createComponent(AccordionView, {
displayName: 'Accordion',
styles: styles,
statics: AccordionStatics,
});
export default Accordion;
//# sourceMappingURL=Accordion.js.map