UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

52 lines (51 loc) 1.91 kB
"use client"; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; const _excluded = ["className", "skeleton", "data", "children"]; import React from 'react'; import classnames from 'classnames'; import { createSpacingClasses } from '../space/SpacingHelper'; import Context from '../../shared/Context'; import TimelineItem from './TimelineItem'; import { validateDOMAttributes, extendPropsWithContext } from '../../shared/component-helper'; 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 === null || context === void 0 ? void 0 : context.Timeline, { skeleton: context === null || context === void 0 ? void 0 : context.skeleton }); const { className, skeleton, data, children: childrenProp } = allProps, props = _objectWithoutProperties(allProps, _excluded); 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 === null || data === void 0 ? void 0 : 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