UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

106 lines (105 loc) 3.13 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PaginationIndicator = exports.ContentObject = void 0; exports.isTrElement = isTrElement; exports.preparePageElement = preparePageElement; var _react = _interopRequireDefault(require("react")); var _clsx = _interopRequireDefault(require("clsx")); var _Context = _interopRequireDefault(require("../../shared/Context.js")); var _ProgressIndicator2 = _interopRequireDefault(require("../progress-indicator/ProgressIndicator.js")); var _jsxRuntime = require("react/jsx-runtime"); var _ProgressIndicator; function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const PaginationIndicator = ({ indicatorElement = 'div', ...props }) => { const context = _react.default.useContext(_Context.default); const Element = preparePageElement(indicatorElement); const ElementChild = isTrElement(Element) ? 'td' : 'div'; return (0, _jsxRuntime.jsx)(Element, { children: (0, _jsxRuntime.jsx)(ElementChild, { className: "dnb-pagination__indicator", children: (0, _jsxRuntime.jsxs)("div", { className: "dnb-pagination__indicator__inner", children: [_ProgressIndicator || (_ProgressIndicator = (0, _jsxRuntime.jsx)(_ProgressIndicator2.default, {})), context.getTranslation(props).Pagination.isLoadingText] }) }) }); }; exports.PaginationIndicator = PaginationIndicator; class ContentObject { constructor({ pageNumber, ...props }) { this.content = null; this.pageNumber = pageNumber; this.hasContent = false; for (const k in props) { this[k] = props[k]; } } insert(content) { this.hasContent = true; this.content = content; if (typeof this.onInsert === 'function') { this.onInsert(this); } return this; } update(content) { this.hasContent = true; this.content = content; if (typeof this.onUpdate === 'function') { this.onUpdate(this); } return this; } } exports.ContentObject = ContentObject; function isTrElement(Element) { let isTr = false; if (Element === 'tr') { isTr = true; } else if (Element && (typeof Element === 'object' || _react.default.isValidElement(Element))) { if ((Element.__emotion_base || Element.target) === 'tr') { isTr = true; } } return isTr; } function preparePageElement(Element, includeClassName = 'dnb-pagination__page') { if (String(Element) === 'Symbol(react.fragment)') { return Element; } if (includeClassName) { const isTr = isTrElement(Element); return ({ className, children, ref, ...props }) => { const params = { ...props, className: (0, _clsx.default)(includeClassName, className), ref }; return isTr ? (0, _jsxRuntime.jsx)("td", { children: (0, _jsxRuntime.jsx)("div", { ...params, children: children }) }) : (0, _jsxRuntime.jsx)(Element, { ...params, children: children }); }; } return Element; } //# sourceMappingURL=PaginationHelpers.js.map