"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[24067],{ /***/ 51715: /*!*****************************************************************************!*\ !*** ./node_modules/_antd@5.12.8@antd/es/_util/throttleByAnimationFrame.js ***! \*****************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ 69202); /* harmony import */ var rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rc-util/es/raf */ 90571); function throttleByAnimationFrame(fn) { let requestId; const later = args => () => { requestId = null; fn.apply(void 0, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(args)); }; const throttled = function () { if (requestId == null) { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } requestId = (0,rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(later(args)); } }; throttled.cancel = () => { rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.cancel(requestId); requestId = null; }; return throttled; } /* harmony default export */ __webpack_exports__.Z = (throttleByAnimationFrame); /***/ }), /***/ 83234: /*!**********************************************************************!*\ !*** ./node_modules/_antd@5.12.8@antd/es/affix/index.js + 2 modules ***! \**********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ affix; } }); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js var _classnames_2_5_1_classnames = __webpack_require__(92310); var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames); // EXTERNAL MODULE: ./node_modules/_rc-resize-observer@1.4.0@rc-resize-observer/es/index.js + 4 modules var es = __webpack_require__(28647); // EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/omit.js var omit = __webpack_require__(99468); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/_util/throttleByAnimationFrame.js var throttleByAnimationFrame = __webpack_require__(51715); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/config-provider/context.js var context = __webpack_require__(70330); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/theme/util/genComponentStyleHook.js + 5 modules var genComponentStyleHook = __webpack_require__(16613); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/affix/style/index.js // ============================== Shared ============================== const genSharedAffixStyle = token => { const { componentCls } = token; return { [componentCls]: { position: 'fixed', zIndex: token.zIndexPopup } }; }; const prepareComponentToken = token => ({ zIndexPopup: token.zIndexBase + 10 }); // ============================== Export ============================== /* harmony default export */ var affix_style = ((0,genComponentStyleHook/* genStyleHooks */.I$)('Affix', genSharedAffixStyle, prepareComponentToken)); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/affix/utils.js function getTargetRect(target) { return target !== window ? target.getBoundingClientRect() : { top: 0, bottom: window.innerHeight }; } function getFixedTop(placeholderRect, targetRect, offsetTop) { if (offsetTop !== undefined && targetRect.top > placeholderRect.top - offsetTop) { return offsetTop + targetRect.top; } return undefined; } function getFixedBottom(placeholderRect, targetRect, offsetBottom) { if (offsetBottom !== undefined && targetRect.bottom < placeholderRect.bottom + offsetBottom) { const targetBottomOffset = window.innerHeight - targetRect.bottom; return offsetBottom + targetBottomOffset; } return undefined; } ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/affix/index.js "use client"; const TRIGGER_EVENTS = ['resize', 'scroll', 'touchstart', 'touchmove', 'touchend', 'pageshow', 'load']; function getDefaultTarget() { return typeof window !== 'undefined' ? window : null; } var AffixStatus; (function (AffixStatus) { AffixStatus[AffixStatus["None"] = 0] = "None"; AffixStatus[AffixStatus["Prepare"] = 1] = "Prepare"; })(AffixStatus || (AffixStatus = {})); const Affix = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => { var _a; const { style, offsetTop, offsetBottom, prefixCls, className, rootClassName, children, target, onChange } = props; const { getPrefixCls, getTargetContainer } = _react_17_0_2_react.useContext(context/* ConfigContext */.E_); const affixPrefixCls = getPrefixCls('affix', prefixCls); const [lastAffix, setLastAffix] = _react_17_0_2_react.useState(false); const [affixStyle, setAffixStyle] = _react_17_0_2_react.useState(); const [placeholderStyle, setPlaceholderStyle] = _react_17_0_2_react.useState(); const status = _react_17_0_2_react.useRef(AffixStatus.None); const prevTarget = _react_17_0_2_react.useRef(null); const prevListener = _react_17_0_2_react.useRef(); const placeholderNodeRef = _react_17_0_2_react.useRef(null); const fixedNodeRef = _react_17_0_2_react.useRef(null); const timer = _react_17_0_2_react.useRef(null); const targetFunc = (_a = target !== null && target !== void 0 ? target : getTargetContainer) !== null && _a !== void 0 ? _a : getDefaultTarget; const internalOffsetTop = offsetBottom === undefined && offsetTop === undefined ? 0 : offsetTop; // =================== Measure =================== const measure = () => { if (status.current !== AffixStatus.Prepare || !fixedNodeRef.current || !placeholderNodeRef.current || !targetFunc) { return; } const targetNode = targetFunc(); if (targetNode) { const newState = { status: AffixStatus.None }; const placeholderRect = getTargetRect(placeholderNodeRef.current); if (placeholderRect.top === 0 && placeholderRect.left === 0 && placeholderRect.width === 0 && placeholderRect.height === 0) { return; } const targetRect = getTargetRect(targetNode); const fixedTop = getFixedTop(placeholderRect, targetRect, internalOffsetTop); const fixedBottom = getFixedBottom(placeholderRect, targetRect, offsetBottom); if (fixedTop !== undefined) { newState.affixStyle = { position: 'fixed', top: fixedTop, width: placeholderRect.width, height: placeholderRect.height }; newState.placeholderStyle = { width: placeholderRect.width, height: placeholderRect.height }; } else if (fixedBottom !== undefined) { newState.affixStyle = { position: 'fixed', bottom: fixedBottom, width: placeholderRect.width, height: placeholderRect.height }; newState.placeholderStyle = { width: placeholderRect.width, height: placeholderRect.height }; } newState.lastAffix = !!newState.affixStyle; if (lastAffix !== newState.lastAffix) { onChange === null || onChange === void 0 ? void 0 : onChange(newState.lastAffix); } status.current = newState.status; setAffixStyle(newState.affixStyle); setPlaceholderStyle(newState.placeholderStyle); setLastAffix(newState.lastAffix); } }; const prepareMeasure = () => { var _a; status.current = AffixStatus.Prepare; measure(); if (false) {} }; const updatePosition = (0,throttleByAnimationFrame/* default */.Z)(() => { prepareMeasure(); }); const lazyUpdatePosition = (0,throttleByAnimationFrame/* default */.Z)(() => { // Check position change before measure to make Safari smooth if (targetFunc && affixStyle) { const targetNode = targetFunc(); if (targetNode && placeholderNodeRef.current) { const targetRect = getTargetRect(targetNode); const placeholderRect = getTargetRect(placeholderNodeRef.current); const fixedTop = getFixedTop(placeholderRect, targetRect, internalOffsetTop); const fixedBottom = getFixedBottom(placeholderRect, targetRect, offsetBottom); if (fixedTop !== undefined && affixStyle.top === fixedTop || fixedBottom !== undefined && affixStyle.bottom === fixedBottom) { return; } } } // Directly call prepare measure since it's already throttled. prepareMeasure(); }); const addListeners = () => { const listenerTarget = targetFunc === null || targetFunc === void 0 ? void 0 : targetFunc(); if (!listenerTarget) { return; } TRIGGER_EVENTS.forEach(eventName => { var _a; if (prevListener.current) { (_a = prevTarget.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(eventName, prevListener.current); } listenerTarget === null || listenerTarget === void 0 ? void 0 : listenerTarget.addEventListener(eventName, lazyUpdatePosition); }); prevTarget.current = listenerTarget; prevListener.current = lazyUpdatePosition; }; const removeListeners = () => { if (timer.current) { clearTimeout(timer.current); timer.current = null; } const newTarget = targetFunc === null || targetFunc === void 0 ? void 0 : targetFunc(); TRIGGER_EVENTS.forEach(eventName => { var _a; newTarget === null || newTarget === void 0 ? void 0 : newTarget.removeEventListener(eventName, lazyUpdatePosition); if (prevListener.current) { (_a = prevTarget.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(eventName, prevListener.current); } }); updatePosition.cancel(); lazyUpdatePosition.cancel(); }; _react_17_0_2_react.useImperativeHandle(ref, () => ({ updatePosition })); // mount & unmount _react_17_0_2_react.useEffect(() => { // [Legacy] Wait for parent component ref has its value. // We should use target as directly element instead of function which makes element check hard. timer.current = setTimeout(addListeners); return () => removeListeners(); }, []); _react_17_0_2_react.useEffect(() => { addListeners(); }, [target, affixStyle]); _react_17_0_2_react.useEffect(() => { updatePosition(); }, [target, offsetTop, offsetBottom]); const [wrapCSSVar, hashId, cssVarCls] = affix_style(affixPrefixCls); const rootCls = _classnames_2_5_1_classnames_default()(rootClassName, hashId, affixPrefixCls, cssVarCls); const mergedCls = _classnames_2_5_1_classnames_default()({ [rootCls]: affixStyle }); let otherProps = (0,omit/* default */.Z)(props, ['prefixCls', 'offsetTop', 'offsetBottom', 'target', 'onChange', 'rootClassName']); if (false) {} return wrapCSSVar( /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, { onResize: updatePosition }, /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({ style: style, className: className, ref: placeholderNodeRef }, otherProps), affixStyle && /*#__PURE__*/_react_17_0_2_react.createElement("div", { style: placeholderStyle, "aria-hidden": "true" }), /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: mergedCls, ref: fixedNodeRef, style: affixStyle }, /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, { onResize: updatePosition }, children))))); }); if (false) {} /* harmony default export */ var affix = (Affix); /***/ }), /***/ 24067: /*!***********************************************************************!*\ !*** ./node_modules/_antd@5.12.8@antd/es/anchor/index.js + 4 modules ***! \***********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ es_anchor; } }); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.8@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules var toConsumableArray = __webpack_require__(69202); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js var _classnames_2_5_1_classnames = __webpack_require__(92310); var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames); // EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/index.js var es = __webpack_require__(33401); // EXTERNAL MODULE: ./node_modules/_scroll-into-view-if-needed@3.1.0@scroll-into-view-if-needed/dist/index.js + 1 modules var dist = __webpack_require__(6774); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/_util/getScroll.js var getScroll = __webpack_require__(85528); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/_util/scrollTo.js + 1 modules var scrollTo = __webpack_require__(5188); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/affix/index.js + 2 modules var es_affix = __webpack_require__(83234); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/config-provider/context.js var config_provider_context = __webpack_require__(70330); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/config-provider/hooks/useCSSVarCls.js var useCSSVarCls = __webpack_require__(70559); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/anchor/context.js const AnchorContext = /*#__PURE__*/_react_17_0_2_react.createContext(undefined); /* harmony default export */ var anchor_context = (AnchorContext); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/anchor/AnchorLink.js "use client"; const AnchorLink = props => { const { href, title, prefixCls: customizePrefixCls, children, className, target, replace } = props; const context = _react_17_0_2_react.useContext(anchor_context); const { registerLink, unregisterLink, scrollTo, onClick, activeLink, direction } = context || {}; _react_17_0_2_react.useEffect(() => { registerLink === null || registerLink === void 0 ? void 0 : registerLink(href); return () => { unregisterLink === null || unregisterLink === void 0 ? void 0 : unregisterLink(href); }; }, [href]); const handleClick = e => { if (replace) { e.preventDefault(); window.location.replace(href); } onClick === null || onClick === void 0 ? void 0 : onClick(e, { title, href }); scrollTo === null || scrollTo === void 0 ? void 0 : scrollTo(href); }; // =================== Warning ===================== if (false) {} const { getPrefixCls } = _react_17_0_2_react.useContext(config_provider_context/* ConfigContext */.E_); const prefixCls = getPrefixCls('anchor', customizePrefixCls); const active = activeLink === href; const wrapperClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-link`, className, { [`${prefixCls}-link-active`]: active }); const titleClassName = _classnames_2_5_1_classnames_default()(`${prefixCls}-link-title`, { [`${prefixCls}-link-title-active`]: active }); return /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: wrapperClassName }, /*#__PURE__*/_react_17_0_2_react.createElement("a", { className: titleClassName, href: href, title: typeof title === 'string' ? title : '', target: target, onClick: handleClick }, title), direction !== 'horizontal' ? children : null); }; /* harmony default export */ var anchor_AnchorLink = (AnchorLink); // EXTERNAL MODULE: ./node_modules/_@ant-design_cssinjs@1.18.2@@ant-design/cssinjs/es/index.js + 35 modules var cssinjs_es = __webpack_require__(3775); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/style/index.js var style = __webpack_require__(78605); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/theme/util/genComponentStyleHook.js + 5 modules var genComponentStyleHook = __webpack_require__(16613); // EXTERNAL MODULE: ./node_modules/_antd@5.12.8@antd/es/theme/util/statistic.js var statistic = __webpack_require__(35577); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/anchor/style/index.js // ============================== Shared ============================== const genSharedAnchorStyle = token => { const { componentCls, holderOffsetBlock, motionDurationSlow, lineWidthBold, colorPrimary, lineType, colorSplit, calc } = token; return { [`${componentCls}-wrapper`]: { marginBlockStart: calc(holderOffsetBlock).mul(-1).equal(), paddingBlockStart: holderOffsetBlock, // delete overflow: auto // overflow: 'auto', [componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), { position: 'relative', paddingInlineStart: lineWidthBold, [`${componentCls}-link`]: { paddingBlock: token.linkPaddingBlock, paddingInline: `${(0,cssinjs_es.unit)(token.linkPaddingInlineStart)} 0`, '&-title': Object.assign(Object.assign({}, style/* textEllipsis */.vS), { position: 'relative', display: 'block', marginBlockEnd: token.anchorTitleBlock, color: token.colorText, transition: `all ${token.motionDurationSlow}`, '&:only-child': { marginBlockEnd: 0 } }), [`&-active > ${componentCls}-link-title`]: { color: token.colorPrimary }, // link link [`${componentCls}-link`]: { paddingBlock: token.anchorPaddingBlockSecondary } } }), [`&:not(${componentCls}-wrapper-horizontal)`]: { [componentCls]: { '&::before': { position: 'absolute', insetInlineStart: 0, top: 0, height: '100%', borderInlineStart: `${(0,cssinjs_es.unit)(lineWidthBold)} ${lineType} ${colorSplit}`, content: '" "' }, [`${componentCls}-ink`]: { position: 'absolute', insetInlineStart: 0, display: 'none', transform: 'translateY(-50%)', transition: `top ${motionDurationSlow} ease-in-out`, width: lineWidthBold, backgroundColor: colorPrimary, [`&${componentCls}-ink-visible`]: { display: 'inline-block' } } } }, [`${componentCls}-fixed ${componentCls}-ink ${componentCls}-ink`]: { display: 'none' } } }; }; const genSharedAnchorHorizontalStyle = token => { const { componentCls, motionDurationSlow, lineWidthBold, colorPrimary } = token; return { [`${componentCls}-wrapper-horizontal`]: { position: 'relative', '&::before': { position: 'absolute', left: { _skip_check_: true, value: 0 }, right: { _skip_check_: true, value: 0 }, bottom: 0, borderBottom: `${(0,cssinjs_es.unit)(token.lineWidth)} ${token.lineType} ${token.colorSplit}`, content: '" "' }, [componentCls]: { overflowX: 'scroll', position: 'relative', display: 'flex', scrollbarWidth: 'none' /* Firefox */, '&::-webkit-scrollbar': { display: 'none' /* Safari and Chrome */ }, [`${componentCls}-link:first-of-type`]: { paddingInline: 0 }, [`${componentCls}-ink`]: { position: 'absolute', bottom: 0, transition: `left ${motionDurationSlow} ease-in-out, width ${motionDurationSlow} ease-in-out`, height: lineWidthBold, backgroundColor: colorPrimary } } } }; }; const prepareComponentToken = token => ({ linkPaddingBlock: token.paddingXXS, linkPaddingInlineStart: token.padding }); // ============================== Export ============================== /* harmony default export */ var anchor_style = ((0,genComponentStyleHook/* genStyleHooks */.I$)('Anchor', token => { const { fontSize, fontSizeLG, paddingXXS, calc } = token; const anchorToken = (0,statistic/* merge */.TS)(token, { holderOffsetBlock: paddingXXS, anchorPaddingBlockSecondary: calc(paddingXXS).div(2).equal(), anchorTitleBlock: calc(fontSize).div(14).mul(3).equal(), anchorBallSize: calc(fontSizeLG).div(2).equal() }); return [genSharedAnchorStyle(anchorToken), genSharedAnchorHorizontalStyle(anchorToken)]; }, prepareComponentToken)); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/anchor/Anchor.js "use client"; function getDefaultContainer() { return window; } function getOffsetTop(element, container) { if (!element.getClientRects().length) { return 0; } const rect = element.getBoundingClientRect(); if (rect.width || rect.height) { if (container === window) { container = element.ownerDocument.documentElement; return rect.top - container.clientTop; } return rect.top - container.getBoundingClientRect().top; } return rect.top; } const sharpMatcherRegex = /#([\S ]+)$/; const Anchor = props => { var _a; const { rootClassName, prefixCls: customPrefixCls, className, style, offsetTop, affix = true, showInkInFixed = false, children, items, direction: anchorDirection = 'vertical', bounds, targetOffset, onClick, onChange, getContainer, getCurrentAnchor, replace } = props; // =================== Warning ===================== if (false) {} const [links, setLinks] = _react_17_0_2_react.useState([]); const [activeLink, setActiveLink] = _react_17_0_2_react.useState(null); const activeLinkRef = _react_17_0_2_react.useRef(activeLink); const wrapperRef = _react_17_0_2_react.useRef(null); const spanLinkNode = _react_17_0_2_react.useRef(null); const animating = _react_17_0_2_react.useRef(false); const { direction, anchor, getTargetContainer, getPrefixCls } = _react_17_0_2_react.useContext(config_provider_context/* ConfigContext */.E_); const prefixCls = getPrefixCls('anchor', customPrefixCls); const rootCls = (0,useCSSVarCls/* default */.Z)(prefixCls); const [wrapCSSVar, hashId, cssVarCls] = anchor_style(prefixCls, rootCls); const getCurrentContainer = (_a = getContainer !== null && getContainer !== void 0 ? getContainer : getTargetContainer) !== null && _a !== void 0 ? _a : getDefaultContainer; const dependencyListItem = JSON.stringify(links); const registerLink = (0,es.useEvent)(link => { if (!links.includes(link)) { setLinks(prev => [].concat((0,toConsumableArray/* default */.Z)(prev), [link])); } }); const unregisterLink = (0,es.useEvent)(link => { if (links.includes(link)) { setLinks(prev => prev.filter(i => i !== link)); } }); const updateInk = () => { var _a; const linkNode = (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`.${prefixCls}-link-title-active`); if (linkNode && spanLinkNode.current) { const { style: inkStyle } = spanLinkNode.current; const horizontalAnchor = anchorDirection === 'horizontal'; inkStyle.top = horizontalAnchor ? '' : `${linkNode.offsetTop + linkNode.clientHeight / 2}px`; inkStyle.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`; inkStyle.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : ''; inkStyle.width = horizontalAnchor ? `${linkNode.clientWidth}px` : ''; if (horizontalAnchor) { (0,dist/* default */.Z)(linkNode, { scrollMode: 'if-needed', block: 'nearest' }); } } }; const getInternalCurrentAnchor = function (_links) { let _offsetTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; let _bounds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5; const linkSections = []; const container = getCurrentContainer(); _links.forEach(link => { const sharpLinkMatch = sharpMatcherRegex.exec(link === null || link === void 0 ? void 0 : link.toString()); if (!sharpLinkMatch) { return; } const target = document.getElementById(sharpLinkMatch[1]); if (target) { const top = getOffsetTop(target, container); if (top < _offsetTop + _bounds) { linkSections.push({ link, top }); } } }); if (linkSections.length) { const maxSection = linkSections.reduce((prev, curr) => curr.top > prev.top ? curr : prev); return maxSection.link; } return ''; }; const setCurrentActiveLink = (0,es.useEvent)(link => { // FIXME: Seems a bug since this compare is not equals // `activeLinkRef` is parsed value which will always trigger `onChange` event. if (activeLinkRef.current === link) { return; } // https://github.com/ant-design/ant-design/issues/30584 const newLink = typeof getCurrentAnchor === 'function' ? getCurrentAnchor(link) : link; setActiveLink(newLink); activeLinkRef.current = newLink; // onChange should respect the original link (which may caused by // window scroll or user click), not the new link onChange === null || onChange === void 0 ? void 0 : onChange(link); }); const handleScroll = _react_17_0_2_react.useCallback(() => { if (animating.current) { return; } const currentActiveLink = getInternalCurrentAnchor(links, targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds); setCurrentActiveLink(currentActiveLink); }, [dependencyListItem, targetOffset, offsetTop]); const handleScrollTo = _react_17_0_2_react.useCallback(link => { setCurrentActiveLink(link); const sharpLinkMatch = sharpMatcherRegex.exec(link); if (!sharpLinkMatch) { return; } const targetElement = document.getElementById(sharpLinkMatch[1]); if (!targetElement) { return; } const container = getCurrentContainer(); const scrollTop = (0,getScroll/* default */.Z)(container, true); const eleOffsetTop = getOffsetTop(targetElement, container); let y = scrollTop + eleOffsetTop; y -= targetOffset !== undefined ? targetOffset : offsetTop || 0; animating.current = true; (0,scrollTo/* default */.Z)(y, { getContainer: getCurrentContainer, callback() { animating.current = false; } }); }, [targetOffset, offsetTop]); const wrapperClass = _classnames_2_5_1_classnames_default()(hashId, cssVarCls, rootCls, rootClassName, `${prefixCls}-wrapper`, { [`${prefixCls}-wrapper-horizontal`]: anchorDirection === 'horizontal', [`${prefixCls}-rtl`]: direction === 'rtl' }, className, anchor === null || anchor === void 0 ? void 0 : anchor.className); const anchorClass = _classnames_2_5_1_classnames_default()(prefixCls, { [`${prefixCls}-fixed`]: !affix && !showInkInFixed }); const inkClass = _classnames_2_5_1_classnames_default()(`${prefixCls}-ink`, { [`${prefixCls}-ink-visible`]: activeLink }); const wrapperStyle = Object.assign(Object.assign({ maxHeight: offsetTop ? `calc(100vh - ${offsetTop}px)` : '100vh' }, anchor === null || anchor === void 0 ? void 0 : anchor.style), style); const createNestedLink = options => Array.isArray(options) ? options.map(item => ( /*#__PURE__*/_react_17_0_2_react.createElement(anchor_AnchorLink, Object.assign({ replace: replace }, item, { key: item.key }), anchorDirection === 'vertical' && createNestedLink(item.children)))) : null; const anchorContent = /*#__PURE__*/_react_17_0_2_react.createElement("div", { ref: wrapperRef, className: wrapperClass, style: wrapperStyle }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: anchorClass }, /*#__PURE__*/_react_17_0_2_react.createElement("span", { className: inkClass, ref: spanLinkNode }), 'items' in props ? createNestedLink(items) : children)); _react_17_0_2_react.useEffect(() => { const scrollContainer = getCurrentContainer(); handleScroll(); scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.addEventListener('scroll', handleScroll); return () => { scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.removeEventListener('scroll', handleScroll); }; }, [dependencyListItem]); _react_17_0_2_react.useEffect(() => { if (typeof getCurrentAnchor === 'function') { setCurrentActiveLink(getCurrentAnchor(activeLinkRef.current || '')); } }, [getCurrentAnchor]); _react_17_0_2_react.useEffect(() => { updateInk(); }, [anchorDirection, getCurrentAnchor, dependencyListItem, activeLink]); const memoizedContextValue = _react_17_0_2_react.useMemo(() => ({ registerLink, unregisterLink, scrollTo: handleScrollTo, activeLink, onClick, direction: anchorDirection }), [activeLink, onClick, handleScrollTo, anchorDirection]); return wrapCSSVar( /*#__PURE__*/_react_17_0_2_react.createElement(anchor_context.Provider, { value: memoizedContextValue }, affix ? ( /*#__PURE__*/_react_17_0_2_react.createElement(es_affix/* default */.Z, { offsetTop: offsetTop, target: getCurrentContainer }, anchorContent)) : anchorContent)); }; if (false) {} /* harmony default export */ var anchor_Anchor = (Anchor); ;// CONCATENATED MODULE: ./node_modules/_antd@5.12.8@antd/es/anchor/index.js "use client"; const es_anchor_Anchor = anchor_Anchor; es_anchor_Anchor.Link = anchor_AnchorLink; /* harmony default export */ var es_anchor = (es_anchor_Anchor); /***/ }) }]);