UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

55 lines (54 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.replaceItemNo = replaceItemNo; var _react = require("react"); var _index = require("../hooks/index.js"); var _componentHelper = require("../../../../shared/component-helper.js"); var _withComponentMarkers = _interopRequireDefault(require("../../../../shared/helpers/withComponentMarkers.js")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function ItemNo({ children }) { const { index } = (0, _index.useItem)(); const processedChildren = (0, _react.useMemo)(() => replaceItemNo(children, index), [children, index]); return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, { children: processedChildren }); } function replaceItemNo(node, index) { if (node == null || node === false) { return node; } if (typeof node === 'string' && node.includes('{itemNo}')) { return node.replace('{itemNo}', String(index + 1)); } if (Array.isArray(node)) { return node.map((n, i) => (0, _jsxRuntime.jsx)(_react.Fragment, { children: replaceItemNo(n, index) }, i)); } if ((0, _react.isValidElement)(node)) { const { children: childProps, ...rest } = node.props || {}; const nextChildren = replaceItemNo(childProps, index); return nextChildren === childProps ? node : (0, _react.createElement)(node.type, rest, nextChildren); } const text = (0, _componentHelper.convertJsxToString)(node); if (text && text.includes('{itemNo}')) { return replaceItemNo(text, index); } return node; } (0, _withComponentMarkers.default)(ItemNo, { _supportsSpacingProps: false }); var _default = exports.default = ItemNo; //# sourceMappingURL=ItemNo.js.map