"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[79817],{ /***/ 27666: /*!****************************************************************************!*\ !*** ./node_modules/_antd@5.9.0@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 */ 77654); /* harmony import */ var rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rc-util/es/raf */ 16089); 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); /***/ }), /***/ 81228: /*!*********************************************************************!*\ !*** ./node_modules/_antd@5.9.0@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/_@babel_runtime@7.28.6@@babel/runtime/helpers/esm/classCallCheck.js var classCallCheck = __webpack_require__(38705); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.28.6@@babel/runtime/helpers/esm/createClass.js var createClass = __webpack_require__(17212); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.28.6@@babel/runtime/helpers/esm/inherits.js var inherits = __webpack_require__(39153); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.28.6@@babel/runtime/helpers/esm/createSuper.js + 1 modules var createSuper = __webpack_require__(71518); // 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.3@rc-resize-observer/es/index.js + 4 modules var es = __webpack_require__(29301); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/omit.js var omit = __webpack_require__(2738); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/throttleByAnimationFrame.js var throttleByAnimationFrame = __webpack_require__(27666); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js var context = __webpack_require__(36355); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js var genComponentStyleHook = __webpack_require__(83116); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js var statistic = __webpack_require__(37613); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/affix/style/index.js // ============================== Shared ============================== const genSharedAffixStyle = token => { const { componentCls } = token; return { [componentCls]: { position: 'fixed', zIndex: token.zIndexPopup } }; }; // ============================== Export ============================== /* harmony default export */ var style = ((0,genComponentStyleHook/* default */.Z)('Affix', token => { const affixToken = (0,statistic/* merge */.TS)(token, { zIndexPopup: token.zIndexBase + 10 }); return [genSharedAffixStyle(affixToken)]; })); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@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.9.0@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 = {})); let InternalAffix = /*#__PURE__*/function (_React$Component) { (0,inherits/* default */.Z)(InternalAffix, _React$Component); var _super = (0,createSuper/* default */.Z)(InternalAffix); function InternalAffix() { var _this; (0,classCallCheck/* default */.Z)(this, InternalAffix); _this = _super.apply(this, arguments); _this.state = { status: AffixStatus.None, lastAffix: false, prevTarget: null }; _this.placeholderNodeRef = /*#__PURE__*/(0,_react_17_0_2_react.createRef)(); _this.fixedNodeRef = /*#__PURE__*/(0,_react_17_0_2_react.createRef)(); _this.addListeners = () => { const targetFunc = _this.getTargetFunc(); const target = targetFunc === null || targetFunc === void 0 ? void 0 : targetFunc(); const { prevTarget } = _this.state; if (prevTarget !== target) { TRIGGER_EVENTS.forEach(eventName => { prevTarget === null || prevTarget === void 0 ? void 0 : prevTarget.removeEventListener(eventName, _this.lazyUpdatePosition); target === null || target === void 0 ? void 0 : target.addEventListener(eventName, _this.lazyUpdatePosition); }); _this.updatePosition(); _this.setState({ prevTarget: target }); } }; _this.removeListeners = () => { if (_this.timer) { clearTimeout(_this.timer); _this.timer = null; } const { prevTarget } = _this.state; const targetFunc = _this.getTargetFunc(); const newTarget = targetFunc === null || targetFunc === void 0 ? void 0 : targetFunc(); TRIGGER_EVENTS.forEach(eventName => { newTarget === null || newTarget === void 0 ? void 0 : newTarget.removeEventListener(eventName, _this.lazyUpdatePosition); prevTarget === null || prevTarget === void 0 ? void 0 : prevTarget.removeEventListener(eventName, _this.lazyUpdatePosition); }); _this.updatePosition.cancel(); // https://github.com/ant-design/ant-design/issues/22683 _this.lazyUpdatePosition.cancel(); }; _this.getOffsetTop = () => { const { offsetBottom, offsetTop } = _this.props; return offsetBottom === undefined && offsetTop === undefined ? 0 : offsetTop; }; _this.getOffsetBottom = () => _this.props.offsetBottom; // =================== Measure =================== _this.measure = () => { const { status, lastAffix } = _this.state; const { onChange } = _this.props; const targetFunc = _this.getTargetFunc(); if (status !== AffixStatus.Prepare || !_this.fixedNodeRef.current || !_this.placeholderNodeRef.current || !targetFunc) { return; } const offsetTop = _this.getOffsetTop(); const offsetBottom = _this.getOffsetBottom(); const targetNode = targetFunc(); if (targetNode) { const newState = { status: AffixStatus.None }; const placeholderRect = getTargetRect(_this.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, offsetTop); 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 (onChange && lastAffix !== newState.lastAffix) { onChange(newState.lastAffix); } _this.setState(newState); } }; _this.prepareMeasure = () => { // event param is used before. Keep compatible ts define here. _this.setState({ status: AffixStatus.Prepare, affixStyle: undefined, placeholderStyle: undefined }); // Test if `updatePosition` called if (false) {} }; _this.updatePosition = (0,throttleByAnimationFrame/* default */.Z)(() => { _this.prepareMeasure(); }); _this.lazyUpdatePosition = (0,throttleByAnimationFrame/* default */.Z)(() => { const targetFunc = _this.getTargetFunc(); const { affixStyle } = _this.state; // Check position change before measure to make Safari smooth if (targetFunc && affixStyle) { const offsetTop = _this.getOffsetTop(); const offsetBottom = _this.getOffsetBottom(); const targetNode = targetFunc(); if (targetNode && _this.placeholderNodeRef.current) { const targetRect = getTargetRect(targetNode); const placeholderRect = getTargetRect(_this.placeholderNodeRef.current); const fixedTop = getFixedTop(placeholderRect, targetRect, offsetTop); 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. _this.prepareMeasure(); }); return _this; } (0,createClass/* default */.Z)(InternalAffix, [{ key: "getTargetFunc", value: function getTargetFunc() { const { getTargetContainer } = this.context; const { target } = this.props; if (target !== undefined) { return target; } return getTargetContainer !== null && getTargetContainer !== void 0 ? getTargetContainer : getDefaultTarget; } // Event handler }, { key: "componentDidMount", value: function componentDidMount() { // [Legacy] Wait for parent component ref has its value. // We should use target as directly element instead of function which makes element check hard. this.timer = setTimeout(this.addListeners); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { this.addListeners(); if (prevProps.offsetTop !== this.props.offsetTop || prevProps.offsetBottom !== this.props.offsetBottom) { this.updatePosition(); } this.measure(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.removeListeners(); } // =================== Render =================== }, { key: "render", value: function render() { const { affixStyle, placeholderStyle } = this.state; const { affixPrefixCls, rootClassName, children } = this.props; const className = _classnames_2_5_1_classnames_default()(affixStyle && rootClassName, { [affixPrefixCls]: !!affixStyle }); let props = (0,omit/* default */.Z)(this.props, ['prefixCls', 'offsetTop', 'offsetBottom', 'target', 'onChange', 'affixPrefixCls', 'rootClassName']); // Omit this since `onTestUpdatePosition` only works on test. if (false) {} return /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, { onResize: this.updatePosition }, /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({}, props, { ref: this.placeholderNodeRef }), affixStyle && /*#__PURE__*/_react_17_0_2_react.createElement("div", { style: placeholderStyle, "aria-hidden": "true" }), /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: className, ref: this.fixedNodeRef, style: affixStyle }, /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, { onResize: this.updatePosition }, children)))); } }]); return InternalAffix; }(_react_17_0_2_react.Component); InternalAffix.contextType = context/* ConfigContext */.E_; const Affix = /*#__PURE__*/(0,_react_17_0_2_react.forwardRef)((props, ref) => { const { prefixCls: customizePrefixCls, rootClassName } = props; const { getPrefixCls } = (0,_react_17_0_2_react.useContext)(context/* ConfigContext */.E_); const affixPrefixCls = getPrefixCls('affix', customizePrefixCls); const [wrapSSR, hashId] = style(affixPrefixCls); const AffixProps = Object.assign(Object.assign({}, props), { affixPrefixCls, rootClassName: _classnames_2_5_1_classnames_default()(rootClassName, hashId) }); return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(InternalAffix, Object.assign({}, AffixProps, { ref: ref }))); }); if (false) {} /* harmony default export */ var affix = (Affix); /***/ }), /***/ 79817: /*!**********************************************************************!*\ !*** ./node_modules/_antd@5.9.0@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.28.6@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules var toConsumableArray = __webpack_require__(77654); // 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.44.4@rc-util/es/index.js var es = __webpack_require__(70425); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // 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__(16722); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/getScroll.js var getScroll = __webpack_require__(13845); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/scrollTo.js + 1 modules var scrollTo = __webpack_require__(68031); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/affix/index.js + 2 modules var es_affix = __webpack_require__(81228); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js var config_provider_context = __webpack_require__(36355); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@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.9.0@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/_antd@5.9.0@antd/es/style/index.js var style = __webpack_require__(17313); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js var genComponentStyleHook = __webpack_require__(83116); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js var statistic = __webpack_require__(37613); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/anchor/style/index.js // ============================== Shared ============================== const genSharedAnchorStyle = token => { const { componentCls, holderOffsetBlock, motionDurationSlow, lineWidthBold, colorPrimary, lineType, colorSplit } = token; return { [`${componentCls}-wrapper`]: { marginBlockStart: -holderOffsetBlock, 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: `${token.linkPaddingInlineStart}px 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: `${lineWidthBold}px ${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: `1px ${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 } } } }; }; // ============================== Export ============================== /* harmony default export */ var anchor_style = ((0,genComponentStyleHook/* default */.Z)('Anchor', token => { const { fontSize, fontSizeLG, paddingXXS } = token; const anchorToken = (0,statistic/* merge */.TS)(token, { holderOffsetBlock: paddingXXS, anchorPaddingBlockSecondary: paddingXXS / 2, anchorTitleBlock: fontSize / 14 * 3, anchorBallSize: fontSizeLG / 2 }); return [genSharedAnchorStyle(anchorToken), genSharedAnchorHorizontalStyle(anchorToken)]; }, token => ({ linkPaddingBlock: token.paddingXXS, linkPaddingInlineStart: token.padding }))); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@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 AnchorContent = props => { var _a; const { rootClassName, anchorPrefixCls: prefixCls, className, style, offsetTop, affix = true, showInkInFixed = false, children, items, direction: anchorDirection = 'vertical', bounds, targetOffset, onClick, onChange, getContainer, getCurrentAnchor, replace } = props; // =================== Warning ===================== if (false) {} 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, getTargetContainer, anchor } = _react_17_0_2_react.useContext(config_provider_context/* ConfigContext */.E_); 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()(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 /*#__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); }; const Anchor = props => { const { prefixCls: customizePrefixCls, rootClassName } = props; const { getPrefixCls } = _react_17_0_2_react.useContext(config_provider_context/* ConfigContext */.E_); const anchorPrefixCls = getPrefixCls('anchor', customizePrefixCls); const [wrapSSR, hashId] = anchor_style(anchorPrefixCls); return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(AnchorContent, Object.assign({}, props, { rootClassName: _classnames_2_5_1_classnames_default()(hashId, rootClassName), anchorPrefixCls: anchorPrefixCls }))); }; if (false) {} /* harmony default export */ var anchor_Anchor = (Anchor); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@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); /***/ }) }]);