UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

50 lines (49 loc) 1.57 kB
"use client"; import _extends from "@babel/runtime/helpers/esm/extends"; import React from 'react'; import classnames from 'classnames'; import { createSpacingClasses } from "../space/SpacingHelper.js"; import Context from "../../shared/Context.js"; import TimelineItem from "./TimelineItem.js"; import { validateDOMAttributes, extendPropsWithContext } from "../../shared/component-helper.js"; export const defaultProps = { className: null, skeleton: false, data: null, children: null }; const Timeline = localProps => { const context = React.useContext(Context); const allProps = extendPropsWithContext(localProps, defaultProps, context?.Timeline, { skeleton: context?.skeleton }); const { className, skeleton, data, children: childrenProp, ...props } = allProps; const spacingClasses = createSpacingClasses(props); let children = childrenProp; if (Array.isArray(childrenProp)) { children = childrenProp.map((child, i) => { return React.cloneElement(child, { skeleton: skeleton, key: i }); }); } validateDOMAttributes(allProps, props); return React.createElement("ol", _extends({ className: classnames("dnb-timeline dnb-space__reset", spacingClasses, className) }, props), data?.map((timelineItem, i) => React.createElement(TimelineItem, _extends({ key: i, skeleton: skeleton }, timelineItem))), children); }; Timeline.Item = TimelineItem; export { TimelineItem }; Timeline._supportsSpacingProps = true; export default Timeline; //# sourceMappingURL=Timeline.js.map