@uifabric/experiments
Version:
Experimental React components for building experiences for Microsoft 365.
40 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/** @jsx withSlots */
var React = require("react");
var Foundation_1 = require("../../Foundation");
var Foundation_2 = require("../../Foundation");
var CollapsibleSection_1 = require("../../CollapsibleSection");
var Accordion_styles_1 = require("./Accordion.styles");
var AccordionItemType = (Foundation_1.withSlots(CollapsibleSection_1.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, tslib_1.__assign(tslib_1.__assign({}, defaultItemProps), child.props));
}
return Foundation_1.withSlots(CollapsibleSection_1.CollapsibleSection, tslib_1.__assign({}, defaultItemProps),
" ",
child,
" ");
});
var Slots = Foundation_1.getSlots(props, {
root: 'div',
});
return Foundation_1.withSlots(Slots.root, null, children);
};
var AccordionStatics = {
Item: CollapsibleSection_1.CollapsibleSection,
defaultProps: {},
};
exports.Accordion = Foundation_2.createComponent(AccordionView, {
displayName: 'Accordion',
styles: Accordion_styles_1.styles,
statics: AccordionStatics,
});
exports.default = exports.Accordion;
//# sourceMappingURL=Accordion.js.map