UNPKG

dumi-theme-nocobase

Version:
77 lines 9.2 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import { LeftOutlined, RightOutlined } from '@ant-design/icons'; import { ClassNames, css } from '@emotion/react'; import React, { useMemo } from 'react'; import useMenu from "../hooks/useMenu"; import useSiteToken from "../hooks/useSiteToken"; import { jsx as ___EmotionJSX } from "@emotion/react"; var useStyle = function useStyle() { var _useSiteToken = useSiteToken(), token = _useSiteToken.token; var colorSplit = token.colorSplit, iconCls = token.iconCls, fontSizeIcon = token.fontSizeIcon; return { prevNextNav: /*#__PURE__*/css("width:calc(100% - 234px);margin-inline-end:170px;margin-inline-start:64px;overflow:hidden;font-size:14px;border-top:1px solid ", colorSplit, ";display:flex;" + (process.env.NODE_ENV === "production" ? "" : ";label:prevNextNav;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlByZXZBbmROZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlb0IiLCJmaWxlIjoiUHJldkFuZE5leHQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGVmdE91dGxpbmVkLCBSaWdodE91dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcywgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBNZW51UHJvcHMgfSBmcm9tICdhbnRkJztcbmltcG9ydCB0eXBlIHsgTWVudUl0ZW1UeXBlIH0gZnJvbSAnYW50ZC9lcy9tZW51L2hvb2tzL3VzZUl0ZW1zJztcbmltcG9ydCB0eXBlIHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVudSBmcm9tICcuLi9ob29rcy91c2VNZW51JztcbmltcG9ydCB1c2VTaXRlVG9rZW4gZnJvbSAnLi4vaG9va3MvdXNlU2l0ZVRva2VuJztcblxuY29uc3QgdXNlU3R5bGUgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdG9rZW4gfSA9IHVzZVNpdGVUb2tlbigpO1xuXG4gIGNvbnN0IHsgY29sb3JTcGxpdCwgaWNvbkNscywgZm9udFNpemVJY29uIH0gPSB0b2tlbjtcblxuICByZXR1cm4ge1xuICAgIHByZXZOZXh0TmF2OiBjc3NgXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjM0cHgpO1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE3MHB4O1xuICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNjRweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjb2xvclNwbGl0fTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYCxcbiAgICBwYWdlTmF2OiBgXG4gICAgICBmbGV4OiAxO1xuICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDcycHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICR7aWNvbkNsc30ge1xuICAgICAgICBmb250LXNpemU6ICR7Zm9udFNpemVJY29ufXB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIH1cblxuICAgICAgLmNoaW5lc2Uge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHg7XG4gICAgICB9XG4gICAgYCxcbiAgICBwcmV2TmF2OiBgXG4gICAgICB0ZXh0LWFsaWduOiBzdGFydDtcblxuICAgICAgLmZvb3Rlci1uYXYtaWNvbi1hZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5mb290ZXItbmF2LWljb24tYmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMWVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuM3M7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgLmZvb3Rlci1uYXYtaWNvbi1iZWZvcmUge1xuICAgICAgICByaWdodDogMC4yZW07XG4gICAgICB9XG4gICAgYCxcbiAgICBuZXh0TmF2OiBgXG4gICAgICB0ZXh0LWFsaWduOiBlbmQ7XG5cbiAgICAgIC5mb290ZXItbmF2LWljb24tYmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1uYXYtaWNvbi1hZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3M7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgLmZvb3Rlci1uYXYtaWNvbi1hZnRlciB7XG4gICAgICAgIGxlZnQ6IDAuMmVtO1xuICAgICAgfVxuICAgIGBcbiAgfTtcbn07XG5cbmNvbnN0IGZsYXR0ZW5NZW51ID0gKG1lbnVJdGVtczogTWVudVByb3BzWydpdGVtcyddKTogTWVudVByb3BzWydpdGVtcyddIHwgbnVsbCA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1lbnVJdGVtcykpIHtcbiAgICByZXR1cm4gbWVudUl0ZW1zLnJlZHVjZTxFeGNsdWRlPE1lbnVQcm9wc1snaXRlbXMnXSwgdW5kZWZpbmVkPj4oKGFjYywgaXRlbSkgPT4ge1xuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBpdGVtICYmIGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoZmxhdHRlbk1lbnUoaXRlbS5jaGlsZHJlbikgPz8gW10pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYy5jb25jYXQoaXRlbSk7XG4gICAgfSwgW10pO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgUHJldkFuZE5leHQ6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZSgpO1xuXG4gIGNvbnN0IFttZW51SXRlbXMsIHNlbGVjdGVkS2V5XSA9IHVzZU1lbnUoe1xuICAgIGJlZm9yZTogPExlZnRPdXRsaW5lZCBjbGFzc05hbWU9XCJmb290ZXItbmF2LWljb24tYmVmb3JlXCIgLz4sXG4gICAgYWZ0ZXI6IDxSaWdodE91dGxpbmVkIGNsYXNzTmFtZT1cImZvb3Rlci1uYXYtaWNvbi1hZnRlclwiIC8+XG4gIH0pO1xuXG4gIGNvbnN0IFtwcmV2LCBuZXh0XSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGZsYXRNZW51ID0gZmxhdHRlbk1lbnUobWVudUl0ZW1zKTtcbiAgICBpZiAoIWZsYXRNZW51KSB7XG4gICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cbiAgICBsZXQgYWN0aXZlTWVudUl0ZW1JbmRleCA9IC0xO1xuICAgIGZsYXRNZW51LmZvckVhY2goKG1lbnVJdGVtLCBpKSA9PiB7XG4gICAgICBpZiAobWVudUl0ZW0gJiYgbWVudUl0ZW0ua2V5ID09PSBzZWxlY3RlZEtleSkge1xuICAgICAgICBhY3RpdmVNZW51SXRlbUluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gW1xuICAgICAgZmxhdE1lbnVbYWN0aXZlTWVudUl0ZW1JbmRleCAtIDFdIGFzIE1lbnVJdGVtVHlwZSxcbiAgICAgIGZsYXRNZW51W2FjdGl2ZU1lbnVJdGVtSW5kZXggKyAxXSBhcyBNZW51SXRlbVR5cGVcbiAgICBdO1xuICB9LCBbbWVudUl0ZW1zLCBzZWxlY3RlZEtleV0pO1xuXG4gIHJldHVybiAoXG4gICAgPHNlY3Rpb24gY3NzPXtzdHlsZXMucHJldk5leHROYXZ9PlxuICAgICAgPENsYXNzTmFtZXM+XG4gICAgICAgIHsoeyBjc3M6IGNsYXNzQ3NzLCBjeCB9KSA9PiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtwcmV2ICYmXG4gICAgICAgICAgICAgIFJlYWN0LmNsb25lRWxlbWVudChwcmV2LmxhYmVsIGFzIFJlYWN0RWxlbWVudCwge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY3goY2xhc3NDc3Moc3R5bGVzLnBhZ2VOYXYpLCBjbGFzc0NzcyhzdHlsZXMucHJldk5hdikpXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAge25leHQgJiZcbiAgICAgICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KG5leHQubGFiZWwgYXMgUmVhY3RFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjeChjbGFzc0NzcyhzdHlsZXMucGFnZU5hdiksIGNsYXNzQ3NzKHN0eWxlcy5uZXh0TmF2KSlcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L0NsYXNzTmFtZXM+XG4gICAgPC9zZWN0aW9uPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUHJldkFuZE5leHQ7XG4iXX0= */"), pageNav: "\n flex: 1;\n height: 72px;\n line-height: 72px;\n text-decoration: none;\n\n ".concat(iconCls, " {\n font-size: ").concat(fontSizeIcon, "px;\n transition: all 0.3s;\n }\n\n .chinese {\n margin-inline-start: 4px;\n }\n "), prevNav: "\n text-align: start;\n\n .footer-nav-icon-after {\n display: none;\n }\n\n .footer-nav-icon-before {\n position: relative;\n margin-inline-end: 1em;\n vertical-align: middle;\n line-height: 0;\n right: 0;\n transition: right 0.3s;\n }\n\n &:hover .footer-nav-icon-before {\n right: 0.2em;\n }\n ", nextNav: "\n text-align: end;\n\n .footer-nav-icon-before {\n display: none;\n }\n\n .footer-nav-icon-after {\n position: relative;\n margin-inline-start: 1em;\n margin-bottom: 1px;\n vertical-align: middle;\n line-height: 0;\n left: 0;\n transition: left 0.3s;\n }\n\n &:hover .footer-nav-icon-after {\n left: 0.2em;\n }\n " }; }; var flattenMenu = function flattenMenu(menuItems) { if (Array.isArray(menuItems)) { return menuItems.reduce(function (acc, item) { if (!item) { return acc; } if ('children' in item && item.children) { var _flattenMenu; return acc.concat((_flattenMenu = flattenMenu(item.children)) !== null && _flattenMenu !== void 0 ? _flattenMenu : []); } return acc.concat(item); }, []); } return null; }; var PrevAndNext = function PrevAndNext() { var styles = useStyle(); var _useMenu = useMenu({ before: ___EmotionJSX(LeftOutlined, { className: "footer-nav-icon-before" }), after: ___EmotionJSX(RightOutlined, { className: "footer-nav-icon-after" }) }), _useMenu2 = _slicedToArray(_useMenu, 2), menuItems = _useMenu2[0], selectedKey = _useMenu2[1]; var _useMemo = useMemo(function () { var flatMenu = flattenMenu(menuItems); if (!flatMenu) { return [null, null]; } var activeMenuItemIndex = -1; flatMenu.forEach(function (menuItem, i) { if (menuItem && menuItem.key === selectedKey) { activeMenuItemIndex = i; } }); return [flatMenu[activeMenuItemIndex - 1], flatMenu[activeMenuItemIndex + 1]]; }, [menuItems, selectedKey]), _useMemo2 = _slicedToArray(_useMemo, 2), prev = _useMemo2[0], next = _useMemo2[1]; return ___EmotionJSX("section", { css: styles.prevNextNav }, ___EmotionJSX(ClassNames, null, function (_ref) { var classCss = _ref.css, cx = _ref.cx; return ___EmotionJSX(React.Fragment, null, prev && /*#__PURE__*/React.cloneElement(prev.label, { className: cx(classCss(styles.pageNav), classCss(styles.prevNav)) }), next && /*#__PURE__*/React.cloneElement(next.label, { className: cx(classCss(styles.pageNav), classCss(styles.nextNav)) })); })); }; export default PrevAndNext;