@kne/system-layout 0.2.0-alpha.24 → 0.2.0-alpha.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +59 -16
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +57 -14
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -549,22 +549,48 @@ const ErrorBoundary = props => {
|
|
|
549
549
|
});
|
|
550
550
|
};
|
|
551
551
|
|
|
552
|
+
const normalizeMarkedScrollElement = marked => {
|
|
553
|
+
if (!marked) {
|
|
554
|
+
return null;
|
|
555
|
+
}
|
|
556
|
+
if (typeof marked.getScrollElement === 'function') {
|
|
557
|
+
const fromApi = marked.getScrollElement();
|
|
558
|
+
if (fromApi) {
|
|
559
|
+
return fromApi;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
if (marked.nodeType === 1) {
|
|
563
|
+
const wrapper = marked.querySelector('.simplebar-content-wrapper');
|
|
564
|
+
if (wrapper) {
|
|
565
|
+
return wrapper;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
return marked;
|
|
569
|
+
};
|
|
570
|
+
const resolveDocumentScrollElement = () => {
|
|
571
|
+
if (typeof document === 'undefined') {
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
// 真实移动端滚 document,不要走 getDefaultScrollElement:
|
|
575
|
+
// 它会 document.querySelector(.kne-responsive-scroll),容易绑到宿主页无关节点。
|
|
576
|
+
return document.scrollingElement || document.documentElement || document.body || null;
|
|
577
|
+
};
|
|
552
578
|
const resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {
|
|
553
579
|
if (deviceIsMobile && !openScrollbar) {
|
|
554
580
|
const anchor = pageScrollRef.current;
|
|
555
581
|
if (anchor) {
|
|
556
|
-
// example
|
|
557
|
-
// findScrollParent 不依赖 kne-responsive-scroll,避免 is-scrolled 监听绑错。
|
|
558
|
-
const marked = responsiveUtils.findResponsiveScroll(anchor.parentElement || anchor);
|
|
559
|
-
if (marked) {
|
|
560
|
-
return marked;
|
|
561
|
-
}
|
|
582
|
+
// 优先真实可滚祖先(example 手机外框 SimpleBar content-wrapper)
|
|
562
583
|
const scrollParent = responsiveUtils.findScrollParent(anchor);
|
|
563
584
|
if (scrollParent) {
|
|
564
585
|
return scrollParent;
|
|
565
586
|
}
|
|
587
|
+
// class 标记的外层可能不是滚动节点,需归一到 content-wrapper
|
|
588
|
+
const marked = normalizeMarkedScrollElement(responsiveUtils.findResponsiveScroll(anchor.parentElement || anchor));
|
|
589
|
+
if (marked) {
|
|
590
|
+
return marked;
|
|
591
|
+
}
|
|
566
592
|
}
|
|
567
|
-
return
|
|
593
|
+
return resolveDocumentScrollElement();
|
|
568
594
|
}
|
|
569
595
|
const anchor = pageScrollRef.current;
|
|
570
596
|
if (anchor && typeof anchor.getScrollElement === 'function') {
|
|
@@ -1050,26 +1076,43 @@ const Page = _ref => {
|
|
|
1050
1076
|
if (!deviceIsMobile || !navbar) {
|
|
1051
1077
|
return;
|
|
1052
1078
|
}
|
|
1053
|
-
let
|
|
1079
|
+
let boundKey = null;
|
|
1054
1080
|
let remove = null;
|
|
1055
1081
|
const bind = () => {
|
|
1056
1082
|
const scrollEl = getScrollElement();
|
|
1057
|
-
if (!scrollEl
|
|
1083
|
+
if (!scrollEl) {
|
|
1084
|
+
return;
|
|
1085
|
+
}
|
|
1086
|
+
const isDocumentScroll = typeof document !== 'undefined' && (scrollEl === document.scrollingElement || scrollEl === document.documentElement || scrollEl === document.body);
|
|
1087
|
+
// document 滚动在部分环境听 element 不稳定,统一挂 window
|
|
1088
|
+
const listenTarget = isDocumentScroll ? window : scrollEl;
|
|
1089
|
+
if (!listenTarget || typeof listenTarget.addEventListener !== 'function') {
|
|
1090
|
+
return;
|
|
1091
|
+
}
|
|
1092
|
+
const nextKey = isDocumentScroll ? 'window' : scrollEl;
|
|
1093
|
+
if (nextKey === boundKey) {
|
|
1058
1094
|
return;
|
|
1059
1095
|
}
|
|
1060
1096
|
if (typeof remove === 'function') {
|
|
1061
1097
|
remove();
|
|
1062
1098
|
}
|
|
1063
|
-
|
|
1099
|
+
boundKey = nextKey;
|
|
1100
|
+
const readScrollTop = () => {
|
|
1101
|
+
if (isDocumentScroll) {
|
|
1102
|
+
var _ref2, _document$scrollingEl, _document$scrollingEl2;
|
|
1103
|
+
return (_ref2 = (_document$scrollingEl = (_document$scrollingEl2 = document.scrollingElement) == null ? void 0 : _document$scrollingEl2.scrollTop) != null ? _document$scrollingEl : window.scrollY) != null ? _ref2 : 0;
|
|
1104
|
+
}
|
|
1105
|
+
return scrollEl.scrollTop || 0;
|
|
1106
|
+
};
|
|
1064
1107
|
const handleScroll = () => {
|
|
1065
1108
|
const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;
|
|
1066
|
-
setIsScrolled(
|
|
1109
|
+
setIsScrolled(readScrollTop() > threshold);
|
|
1067
1110
|
};
|
|
1068
1111
|
handleScroll();
|
|
1069
|
-
|
|
1112
|
+
listenTarget.addEventListener('scroll', handleScroll, {
|
|
1070
1113
|
passive: true
|
|
1071
1114
|
});
|
|
1072
|
-
remove = () =>
|
|
1115
|
+
remove = () => listenTarget.removeEventListener('scroll', handleScroll);
|
|
1073
1116
|
};
|
|
1074
1117
|
bind();
|
|
1075
1118
|
// SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定
|
|
@@ -1187,9 +1230,9 @@ const Page = _ref => {
|
|
|
1187
1230
|
['no-padding']: noPadding,
|
|
1188
1231
|
[style['no-padding']]: noPadding
|
|
1189
1232
|
});
|
|
1190
|
-
const render =
|
|
1191
|
-
let children =
|
|
1192
|
-
className =
|
|
1233
|
+
const render = _ref3 => {
|
|
1234
|
+
let children = _ref3.children,
|
|
1235
|
+
className = _ref3.className;
|
|
1193
1236
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1194
1237
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1195
1238
|
className: style['page-top']
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/context.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/Layout/index.js","../src/Page/index.js","../src/isMobile.js","../src/themeToken.js","../src/index.js"],"sourcesContent":["import { Image } from '@kne/react-file';\nimport { Flex } from 'antd';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst UserCard = ({ name, avatar, email, phone, description, menuOpen, extra }) => {\n if (!menuOpen) {\n return <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />;\n }\n return (\n <Flex gap={12} justify=\"center\">\n <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />\n <Flex vertical>\n <div className={classnames('username', style['username'])}>{name || '-'}</div>\n <div className={classnames('user-description', style['user-description'])}>{email || phone || description || '-'}</div>\n {extra}\n </Flex>\n </Flex>\n );\n};\n\nexport default UserCard;\n","import { Flex } from 'antd';\nimport { isValidElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport classnames from 'classnames';\nimport Icon from '@kne/react-icon';\nimport ensureSlash from '@kne/ensure-slash';\nimport isPlainObject from 'lodash/isPlainObject';\nimport VirtualList from 'rc-virtual-list';\nimport style from './style.module.scss';\n\nconst MENU_ITEM_HEIGHT = 52;\nconst MENU_GROUP_HEIGHT = 48;\nconst MENU_GROUP_SPLIT_HEIGHT = 17;\n\nconst getItemKey = (item, index) => item.key || item.path || index;\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const listRef = useRef(null);\n const virtualListRef = useRef(null);\n const [listHeight, setListHeight] = useState(0);\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n\n const isItemActive = useCallback(\n item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { menuOpen, base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n },\n [activeKey, base, currentPathname, menuOpen]\n );\n\n const getEstimatedItemHeight = useCallback(\n (item, index) => {\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n if (!hasGroup) {\n return MENU_ITEM_HEIGHT;\n }\n return MENU_ITEM_HEIGHT + (menuOpen ? MENU_GROUP_HEIGHT : MENU_GROUP_SPLIT_HEIGHT);\n },\n [items, menuOpen]\n );\n\n const estimatedItemHeight = useMemo(() => {\n if (!items.length) {\n return MENU_ITEM_HEIGHT;\n }\n const total = items.reduce((sum, item, index) => sum + getEstimatedItemHeight(item, index), 0);\n return Math.max(MENU_ITEM_HEIGHT, Math.ceil(total / items.length));\n }, [getEstimatedItemHeight, items]);\n\n const listData = useMemo(\n () =>\n items.map((item, index) => ({\n item,\n index,\n key: getItemKey(item, index)\n })),\n [items]\n );\n\n const activeIndex = useMemo(() => listData.findIndex(({ item }) => isItemActive(item)), [isItemActive, listData]);\n\n useLayoutEffect(() => {\n const el = listRef.current;\n if (!el) {\n return;\n }\n const updateHeight = () => {\n const styles = getComputedStyle(el);\n const paddingY = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom);\n setListHeight(el.clientHeight - paddingY);\n };\n updateHeight();\n const observer = new ResizeObserver(updateHeight);\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (activeIndex < 0 || listHeight <= 0) {\n return;\n }\n virtualListRef.current?.scrollTo({\n index: activeIndex,\n align: 'auto'\n });\n }, [activeIndex, listHeight, menuOpen, listData.length]);\n\n const renderMenuItem = (item, index) => {\n const active = isItemActive(item);\n const icon = typeof item.icon === 'function' ? item.icon({ menuOpen, active }) : item.icon;\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n\n return (\n <div\n key={getItemKey(item, index)}\n title={item.label}\n onClick={e => {\n if (active) {\n return;\n }\n onChange && onChange(item, { menuOpen, base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { menuOpen, base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {hasGroup && menuOpen ? <div className={classnames('menu-group', style['menu-group'])}>{item.groupLabel || item.group}</div> : null}\n {hasGroup && !menuOpen ? <div className={classnames('menu-group-split', style['menu-group-split'])} /> : null}\n <Flex\n className={classnames('menu-item', style['menu-item'], {\n ['is-active']: active,\n ['is-closed']: !menuOpen\n })}\n align=\"center\"\n gap={8}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('menu-item-icon', style['menu-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('menu-item-icon', style['menu-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('menu-item-icon', style['menu-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n {menuOpen && item.label}\n </Flex>\n </div>\n );\n };\n\n return (\n <div ref={listRef} className={classnames('menu', className, style['menu-list'])}>\n {listHeight > 0 ? (\n <VirtualList ref={virtualListRef} data={listData} height={listHeight} itemHeight={estimatedItemHeight} itemKey=\"key\" virtual={listData.length > 0}>\n {({ item, index }) => renderMenuItem(item, index)}\n </VirtualList>\n ) : null}\n </div>\n );\n};\n\nexport default Menu;\n","import { createContext, useContext as useReactContext } from 'react';\n\nconst context = createContext({});\n\nexport const useContext = () => {\n return useReactContext(context);\n};\n\nexport const { Provider, Consumer } = context;\n\nexport default context;\n","import { createPortal } from 'react-dom';\nimport { Flex } from 'antd';\nimport ensureSlash from '@kne/ensure-slash';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport Icon from '@kne/react-icon';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport { isValidElement, useRef, useLayoutEffect, useState, useEffect } from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile } from '@kne/responsive-utils';\nimport { useContext } from '../context';\n\nconst resolveTarget = target => {\n if (!target) {\n return null;\n }\n return typeof target === 'function' ? target() : target;\n};\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const isMobile = useIsMobile();\n const { scrollReady } = useContext();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n const toolbarMenu = items.filter(item => item.toolbar);\n const itemRefs = useRef([]);\n const firstRenderRef = useRef(true);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, scale: 1, visible: false });\n const [clicked, setClicked] = useState(false);\n const [scrolling, setScrolling] = useState(false);\n const scrollTimerRef = useRef(null);\n\n const activeIndex = toolbarMenu.findIndex(item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n });\n const displayIndex = activeIndex >= 0 ? activeIndex : 0;\n\n const listRef = useRef(null);\n const explicitTarget = resolveTarget(target);\n const useBoundaryMount = isMobile && mode === 'container' && !explicitTarget;\n const useViewportFixed = isMobile && mode !== 'container' && !explicitTarget;\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useLayoutEffect(() => {\n if (activeIndex < 0) {\n return;\n }\n const item = itemRefs.current[activeIndex];\n const list = listRef.current;\n if (!item || !list) {\n return;\n }\n\n const itemRect = item.getBoundingClientRect();\n const listRect = list.getBoundingClientRect();\n const newLeft = itemRect.left - listRect.left;\n const newWidth = itemRect.width;\n\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n setIndicator({ left: newLeft, width: newWidth, scale: 1, visible: true });\n return;\n }\n\n setIndicator(prev => ({ ...prev, scale: 1.15 }));\n\n const t1 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, left: newLeft, width: newWidth }));\n }, 120);\n\n const t2 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, scale: 1 }));\n }, 380);\n\n return () => {\n clearTimeout(t1);\n clearTimeout(t2);\n };\n }, [activeIndex, show, target, useBoundaryMount, useViewportFixed]);\n\n useEffect(() => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function') {\n return;\n }\n const handleScroll = () => {\n setScrolling(true);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n scrollTimerRef.current = setTimeout(() => {\n setScrolling(false);\n }, 500);\n };\n\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n };\n }, [getScrollElement, show, scrollReady]);\n\n if (!show) {\n return null;\n }\n\n const toolbarList = (\n <Flex\n ref={listRef}\n className={classnames('toolbar-list', style['toolbar-list'], {\n ['is-clicked']: clicked,\n ['is-scrolling']: scrolling,\n [style['is-boundary']]: useBoundaryMount,\n [style['is-viewport']]: useViewportFixed\n })}\n style={{\n '--toolbar-count': toolbarMenu.length || 1\n }}\n onAnimationEnd={() => {\n if (clicked) {\n setClicked(false);\n }\n }}\n >\n {indicator.visible && (\n <div\n className={classnames('toolbar-indicator', style['toolbar-indicator'])}\n style={{\n left: `${indicator.left}px`,\n width: `${indicator.width}px`,\n transform: `scale(${indicator.scale})`\n }}\n />\n )}\n {toolbarMenu.map((item, index) => {\n const active = index === activeIndex;\n const icon = typeof item.icon === 'function' ? item.icon({ active }) : item.icon;\n return (\n <Flex\n key={item.key || item.path || index}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n vertical\n flex={1}\n justify=\"center\"\n align=\"center\"\n className={classnames('toolbar-item', style['toolbar-item'], {\n ['is-active']: active,\n [style['is-hidden']]: scrolling && index !== displayIndex\n })}\n onClick={e => {\n if (active) {\n return;\n }\n setClicked(true);\n onChange && onChange(item, { base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('toolbar-item-icon', style['toolbar-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n <div className={classnames('toolbar-item-label', style['toolbar-item-label'])}>{item.label}</div>\n </Flex>\n );\n })}\n </Flex>\n );\n\n if (useBoundaryMount && boundaryTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(<div className={classnames('toolbar-boundary-overlay', style['toolbar-boundary-overlay'])}>{toolbarList}</div>, boundaryTarget)}</div>;\n }\n\n if (useViewportFixed) {\n return <div className={classnames('toolbar', style['toolbar'], style['toolbar-inline'], className)}>{toolbarList}</div>;\n }\n\n if (explicitTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(toolbarList, explicitTarget)}</div>;\n }\n\n return null;\n};\n\nexport default Toolbar;\n","const locale = {\n systemError: '系统出了点小问题,可刷新页面进行解决',\n refresh: '刷新'\n};\n\nexport default locale;\n","const locale = {\n systemError: 'The system encountered a minor issue, please refresh the page to resolve it',\n refresh: 'Refresh'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'system-layout'\n});\n\nexport default withLocale;\n","import React from 'react';\nimport { Alert, Button } from 'antd';\nimport ReactErrorBoundary from '@kne/react-error-boundary';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../withLocale';\n\nconst ErrorComponent = withLocale(() => {\n const { formatMessage } = useIntl();\n return (\n <Alert\n message={formatMessage({ id: 'systemError' })}\n showIcon\n type=\"error\"\n action={\n <Button size=\"small\" danger onClick={() => window.location.reload()}>\n {formatMessage({ id: 'refresh' })}\n </Button>\n }\n />\n );\n});\n\nconst ErrorBoundary = props => {\n return <ReactErrorBoundary {...props} errorComponent={ErrorComponent} />;\n};\n\nexport default ErrorBoundary;\n","import { useMemo, useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Flex, Row, Col } from 'antd';\nimport classnames from 'classnames';\nimport localStorage from '@kne/local-storage';\nimport { Image } from '@kne/react-file';\nimport UserCard from './UserCard';\nimport Menu from '../Menu';\nimport Toolbar from '../Toolbar';\nimport Icon from '@kne/react-icon';\nimport defaultLogo from './defaultLogo.svg';\nimport { ReactComponent as ExpandIcon } from './expand.svg';\nimport style from './style.module.scss';\nimport ErrorBoundary from '../ErrorComponent';\nimport SimpleBar from 'simplebar-react';\nimport { Provider } from '../context';\nimport { useLocation } from 'react-router-dom';\nimport useIsMobile from '../useIsMobile';\nimport { ResponsiveProvider, useResponsiveContext, findResponsiveScroll, findScrollParent, getDefaultScrollElement, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS } from '@kne/responsive-utils';\nimport 'simplebar-react/dist/simplebar.min.css';\n\nconst resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {\n if (deviceIsMobile && !openScrollbar) {\n const anchor = pageScrollRef.current;\n if (anchor) {\n // example 手机外框:滚动在 SimpleBar wrapper 上;class 可能晚于首帧挂上,\n // findScrollParent 不依赖 kne-responsive-scroll,避免 is-scrolled 监听绑错。\n const marked = findResponsiveScroll(anchor.parentElement || anchor);\n if (marked) {\n return marked;\n }\n const scrollParent = findScrollParent(anchor);\n if (scrollParent) {\n return scrollParent;\n }\n }\n return getDefaultScrollElement();\n }\n const anchor = pageScrollRef.current;\n if (anchor && typeof anchor.getScrollElement === 'function') {\n return anchor.getScrollElement();\n }\n if (anchor && anchor.nodeType === 1 && openScrollbar) {\n const wrapper = anchor.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return findResponsiveScroll(anchor) || getDefaultScrollElement();\n};\n\n// 始终覆盖本页 scroller(否则嵌套在 Global 下 sticky 会绑到 body)。\n// container 模式(example 手机外框)保留外层 boundary,toolbar/menu 才能 portal 到\n// .example-driver-device-scroll(非滚动内容区),absolute/fixed 相对手机视口生效。\nconst LayoutResponsiveScope = ({ boundaryRef, scrollRef, getScrollElement, children }) => {\n const parent = useResponsiveContext();\n const inheritBoundary = parent.mode === 'container';\n return (\n <ResponsiveProvider\n mode={parent.mode}\n containerWidth={parent.containerWidth}\n boundaryRef={boundaryRef}\n scrollRef={scrollRef}\n getScrollElement={getScrollElement}\n getBoundaryElement={\n inheritBoundary\n ? () => {\n const fromParent = typeof parent.getBoundaryElement === 'function' ? parent.getBoundaryElement() : null;\n return fromParent || null;\n }\n : undefined\n }\n >\n {children}\n </ResponsiveProvider>\n );\n};\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\n\nconst DRAG_THRESHOLD = 4;\n\nconst MobileAiEntry = ({ variant, onOpen }) => {\n const btnRef = useRef(null);\n const dragRef = useRef(null);\n const [pos, setPos] = useState(null);\n\n const handlePointerDown = event => {\n const node = btnRef.current;\n if (!node) {\n return;\n }\n // 与 toolbar 一致:boundary 模式下相对定位容器为 offsetParent,viewport 模式下相对视口\n const container = node.offsetParent;\n const rect = node.getBoundingClientRect();\n const refLeft = container ? container.getBoundingClientRect().left : 0;\n const refTop = container ? container.getBoundingClientRect().top : 0;\n dragRef.current = {\n startX: event.clientX,\n startY: event.clientY,\n originLeft: rect.left - refLeft,\n originTop: rect.top - refTop,\n refWidth: container ? container.clientWidth : window.innerWidth,\n refHeight: container ? container.clientHeight : window.innerHeight,\n size: node.offsetWidth,\n moved: false\n };\n node.setPointerCapture?.(event.pointerId);\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const dx = event.clientX - drag.startX;\n const dy = event.clientY - drag.startY;\n if (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD) {\n drag.moved = true;\n }\n const maxLeft = Math.max(8, drag.refWidth - drag.size - 8);\n const maxTop = Math.max(8, drag.refHeight - drag.size - 8);\n setPos({\n left: Math.min(Math.max(8, drag.originLeft + dx), maxLeft),\n top: Math.min(Math.max(8, drag.originTop + dy), maxTop)\n });\n };\n\n const handlePointerUp = event => {\n const drag = dragRef.current;\n dragRef.current = null;\n btnRef.current?.releasePointerCapture?.(event.pointerId);\n if (drag && !drag.moved) {\n onOpen();\n }\n };\n\n return (\n <div\n ref={btnRef}\n className={classnames('ai-entry-mobile', style['ai-entry-mobile'], {\n [style['is-viewport']]: variant === 'viewport',\n [style['is-boundary']]: variant !== 'viewport'\n })}\n style={pos ? { left: `${pos.left}px`, top: `${pos.top}px`, right: 'auto', bottom: 'auto' } : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n );\n};\n\nconst Layout = ({\n className,\n menu,\n background = 'linear-gradient(0deg, #BBCFE7 0%, #BBCFE7 100%), #FFFFFF',\n menuMaxWidth = '254px',\n menuMinWidth = '84px',\n logo,\n menuHeader,\n userInfo,\n aiDialog = null,\n openScrollbar: openScrollbarProps,\n isMobile: isMobileProps,\n toolbarTarget,\n children\n}) => {\n const localMenuOpen = localStorage.getItem(LayoutMenuOpenKey);\n const isMobile = useIsMobile();\n const responsiveContext = useResponsiveContext();\n const deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\n const useMenuPortal = deviceIsMobile && responsiveContext.mode === 'container';\n const [menuPortalTarget, setMenuPortalTarget] = useState(null);\n const [menuOpen, setMenuOpen] = useState(typeof localMenuOpen === 'boolean' && !deviceIsMobile ? localMenuOpen : !deviceIsMobile);\n const [toolbarShow, setToolbarShow] = useState(true);\n const [navbarShow, setNavbarShow] = useState(true);\n const [aiType, setAiType] = useState('closed');\n const [scrollReady, setScrollReady] = useState(0);\n const openScrollbar = typeof openScrollbarProps === 'boolean' ? openScrollbarProps : !deviceIsMobile && !window.__COMPONENTS_CORE_SIMPLE_BAR_DISABLED;\n const userAvatar = userInfo?.avatar;\n const contextValue = useMemo(() => {\n return {\n setToolbarShow,\n setNavbarShow,\n setMenuOpen,\n deviceIsMobile,\n scrollReady,\n logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar, scrollReady]);\n const topRef = useRef(null);\n const pageRef = useRef(null);\n const layoutBoundaryRef = useRef(null);\n const pageScrollRef = useRef(null);\n const location = useLocation();\n const getPageScrollElement = useCallback(() => {\n return resolvePageScrollElement(pageScrollRef, openScrollbar, deviceIsMobile);\n }, [openScrollbar, deviceIsMobile]);\n\n const handlePageScrollRef = useCallback(node => {\n pageScrollRef.current = node;\n if (node) {\n setScrollReady(version => version + 1);\n }\n }, []);\n\n useEffect(() => {\n if (!useMenuPortal) {\n setMenuPortalTarget(null);\n return;\n }\n const target = typeof responsiveContext.getBoundaryElement === 'function' ? responsiveContext.getBoundaryElement() : null;\n setMenuPortalTarget(target || null);\n }, [useMenuPortal, responsiveContext, scrollReady]);\n\n useEffect(() => {\n const scrollEl = getPageScrollElement();\n if (scrollEl && typeof scrollEl.scrollTo === 'function') {\n scrollEl.scrollTo(0, 0);\n return;\n }\n topRef.current?.scrollIntoView();\n }, [location, getPageScrollElement]);\n\n const userCard = <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />;\n\n const menuPortalVars = useMenuPortal\n ? {\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }\n : undefined;\n\n const layerMenuNode = deviceIsMobile ? (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n ) : null;\n\n const menuNode = (\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n >\n <div className={classnames('logo', style['logo'])}>\n <Image className={style['logo-img']} {...contextValue.logo} />\n </div>\n <div\n className={classnames('expand-btn-wrapper', style['expand-btn-wrapper'])}\n onClick={() => {\n setMenuOpen(menuOpen => {\n localStorage.setItem(LayoutMenuOpenKey, !menuOpen);\n return !menuOpen;\n });\n }}\n >\n <ExpandIcon\n className={classnames('expand-btn', style['expand-btn'], {\n 'is-closed': !menuOpen\n })}\n />\n </div>\n <div className={classnames('menu-inner', style['menu-inner'])}>\n <div className={classnames('menu-header', style['menu-header'])}>\n <ErrorBoundary>{menuHeader ? (typeof menuHeader === 'function' ? menuHeader({ menuOpen, userCard }) : menuHeader) : userCard}</ErrorBoundary>\n </div>\n <ErrorBoundary>\n <Menu\n className={classnames('menu-list', style['menu-list'])}\n menuOpen={menuOpen}\n {...menu}\n onChange={() => {\n deviceIsMobile && setMenuOpen(false);\n }}\n />\n </ErrorBoundary>\n {aiDialog && !deviceIsMobile && (\n <div\n className={classnames('ai-entry', style['ai-entry'])}\n onClick={() => {\n setAiType('small');\n }}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n )}\n </div>\n </div>\n );\n\n const portalMenu = useMenuPortal && menuPortalTarget;\n\n const aiDialogWindow =\n aiDialog && aiType === 'small' ? (\n <div\n className={classnames('ai-dialog-window', style['ai-dialog-window'], {\n 'is-mobile-full': deviceIsMobile,\n [style['is-mobile-full']]: deviceIsMobile,\n [style['is-viewport']]: deviceIsMobile && !portalMenu\n })}\n >\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n {!deviceIsMobile && (\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\n }}\n />\n )}\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('ai-dialog-window-content', style['ai-dialog-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n ) : null;\n\n const aiEntryMobile = deviceIsMobile && aiDialog && aiType === 'closed' ? <MobileAiEntry variant={portalMenu ? 'boundary' : 'viewport'} onOpen={() => setAiType('small')} /> : null;\n\n // portal 到 boundary(popup 挂载点)时,layout 上的 CSS 变量不会随 portal 继承,需要显式透传\n const aiPortalVars = {\n '--background': background,\n '--toolbar-height': deviceIsMobile && toolbarShow ? '72px' : '0px',\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n };\n\n const aiOverlayContent =\n aiDialogWindow || aiEntryMobile ? (\n <>\n {aiDialogWindow}\n {aiEntryMobile}\n </>\n ) : null;\n\n const aiOverlay = !aiOverlayContent\n ? null\n : portalMenu\n ? createPortal(\n <div className={classnames('ai-boundary-overlay', style['ai-boundary-overlay'])} style={aiPortalVars}>\n {aiOverlayContent}\n </div>,\n menuPortalTarget\n )\n : aiOverlayContent;\n\n return (\n <LayoutResponsiveScope boundaryRef={layoutBoundaryRef} scrollRef={pageScrollRef} getScrollElement={getPageScrollElement}>\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n ref={layoutBoundaryRef}\n className={classnames(className, 'layout', style['layout'], RESPONSIVE_BOUNDARY_CLASS, {\n 'is-mobile': deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n 'has-toolbar': deviceIsMobile && toolbarShow,\n [style['has-toolbar']]: deviceIsMobile && toolbarShow,\n 'has-navbar': deviceIsMobile && navbarShow,\n [style['has-navbar']]: deviceIsMobile && navbarShow\n })}\n style={{\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }}\n >\n {!portalMenu && layerMenuNode}\n <Flex style={{ flex: 1, minHeight: 0, width: '100%', height: 0 }}>\n {!portalMenu && menuNode}\n {portalMenu &&\n createPortal(\n <div className={classnames(style['menu-boundary-overlay'])} style={menuPortalVars}>\n {layerMenuNode}\n {menuNode}\n </div>,\n menuPortalTarget\n )}\n <Flex flex={1} ref={pageRef} className={classnames('page', style['page'])}>\n <Row className={classnames('page-content', style['page-content'])}>\n {!deviceIsMobile && aiDialog && aiType === 'inner' && (\n <Col span={8} className={classnames('page-dialog-outer', style['page-dialog-outer'])}>\n <div className={classnames('page-dialog', style['page-dialog'])}>\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('page-window-content', style['page-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n </Col>\n )}\n <Col span={!deviceIsMobile && aiDialog && aiType === 'inner' ? 16 : 24} className={RESPONSIVE_CONTAINER_CLASS}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], !deviceIsMobile && 'is-scroller', !deviceIsMobile && style['is-scroller'], !deviceIsMobile && RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n </Flex>\n {aiOverlay}\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={toolbarTarget} />\n </div>\n </Provider>\n </LayoutResponsiveScope>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useRef, useState } from 'react';\nimport Icon from '@kne/react-icon';\nimport ButtonGroup from '@kne/button-group';\nimport classnames from 'classnames';\nimport { useNavigate } from 'react-router-dom';\nimport { useScrollElement, usePopupContainer, useResponsiveContext } from '@kne/responsive-utils';\nimport { useContext } from '../context';\nimport style from './style.module.scss';\nimport { Image } from '@kne/react-file';\n\nconst PageLoading = () => {\n return (\n <Flex flex={1} justify=\"center\">\n <div className={style['page-loading']}>\n <Skeleton active />\n </div>\n </Flex>\n );\n};\n\nconst Page = ({ title, extra = null, back, buttonProps, children, toolbar = true, navbar = true, noPadding }) => {\n const { setToolbarShow, setNavbarShow, setMenuOpen, deviceIsMobile, userAvatar, scrollReady } = useContext();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const navbarRef = useRef(null);\n const [isScrolled, setIsScrolled] = useState(false);\n const useBoundaryMount = deviceIsMobile && mode === 'container';\n const useViewportFixed = deviceIsMobile && mode !== 'container';\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n useEffect(() => {\n if (!deviceIsMobile || !navbar) {\n return;\n }\n let boundEl = null;\n let remove = null;\n\n const bind = () => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function' || scrollEl === boundEl) {\n return;\n }\n if (typeof remove === 'function') {\n remove();\n }\n boundEl = scrollEl;\n const handleScroll = () => {\n const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;\n setIsScrolled(scrollEl.scrollTop > threshold);\n };\n handleScroll();\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n remove = () => scrollEl.removeEventListener('scroll', handleScroll);\n };\n\n bind();\n // SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定\n const raf = requestAnimationFrame(bind);\n return () => {\n cancelAnimationFrame(raf);\n if (typeof remove === 'function') {\n remove();\n }\n };\n }, [deviceIsMobile, navbar, getScrollElement, scrollReady]);\n\n const titleExtraContent = (() => {\n if (extra) {\n if (deviceIsMobile && userAvatar) {\n return (\n <Flex gap={4} align=\"center\">\n {extra}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n );\n }\n return extra;\n }\n if (deviceIsMobile && (buttonProps || userAvatar)) {\n const actions = buttonProps ? (\n <div className={classnames('page-title-actions', style['page-title-actions'])}>\n <ButtonGroup {...Object.assign({}, buttonProps, { showLength: 0, moreType: 'link' })} />\n </div>\n ) : null;\n const avatar = userAvatar ? <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" /> : null;\n // 仅更多按钮时不要套带 gap 的 Flex,否则 ButtonGroup 测宽空节点也会吃 gap,导致不居中\n if (actions && avatar) {\n return (\n <Flex gap={4} align=\"center\">\n {actions}\n {avatar}\n </Flex>\n );\n }\n return actions || avatar;\n }\n if (buttonProps) {\n return <ButtonGroup {...buttonProps} />;\n }\n return null;\n })();\n\n const navbarInner = navbar ? (\n <Flex\n ref={navbarRef}\n justify=\"space-between\"\n align=\"center\"\n gap={20}\n className={classnames('page-header', style['page-header'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n ['is-scrolled']: isScrolled,\n [style['is-scrolled']]: isScrolled,\n [style['is-boundary']]: useBoundaryMount && !!boundaryTarget,\n [style['is-viewport']]: useViewportFixed || (useBoundaryMount && !boundaryTarget)\n })}\n >\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typearrow_forward_ios\" fontClassName=\"system\" />}\n onClick={() => {\n navigate(-1);\n }}\n />\n )}\n {!back && deviceIsMobile && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typeequal\" fontClassName=\"system\" />}\n onClick={() => {\n setMenuOpen(open => !open);\n }}\n />\n )}\n <div className={classnames('page-title', style['page-title'])}>{title}</div>\n </Flex>\n {titleExtraContent ? <div className={classnames('page-title-extra', style['page-title-extra'], style['has-float'])}>{titleExtraContent}</div> : null}\n </Flex>\n ) : null;\n\n const navbarEl =\n navbarInner && useBoundaryMount && boundaryTarget\n ? createPortal(\n <div\n className={classnames('page-header-boundary-overlay', style['page-header-boundary-overlay'])}\n style={{\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n }}\n >\n {navbarInner}\n </div>,\n boundaryTarget\n )\n : navbarInner;\n\n const pageInnerClassNameOrigin = classnames('page-inner', style['page-inner']);\n const pageInnerClassName = classnames(pageInnerClassNameOrigin, {\n ['no-padding']: noPadding,\n [style['no-padding']]: noPadding\n });\n\n const render = ({ children, className }) => {\n return (\n <>\n <div className={style['page-top']} />\n <Flex vertical flex={1}>\n {navbarEl}\n <Flex vertical flex={1} className={classnames(pageInnerClassNameOrigin, className)}>\n {children}\n </Flex>\n </Flex>\n <div className={style['page-bottom']} />\n </>\n );\n };\n\n return (\n <Flex\n vertical\n flex={1}\n className={classnames('page', style['page'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile\n })}\n >\n {typeof children === 'function'\n ? children({\n navbar: navbarEl,\n className: pageInnerClassName,\n render,\n pageLoading: render({\n children: <PageLoading />\n })\n })\n : render({ children })}\n </Flex>\n );\n};\n\nPage.PageLoading = PageLoading;\n\nexport default Page;\n","import { IS_MOBILE_QUERY, MOBILE_BREAKPOINT } from '@kne/responsive-utils';\n\nconst isMobile = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(IS_MOBILE_QUERY).matches;\n};\n\nexport default isMobile;\nexport { MOBILE_BREAKPOINT };\n","import merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker', 'Tabs'];\n\nconst themeToken = {\n components: merge(\n {},\n transform(\n transparentBgContainerComponents,\n (result, component) => {\n result[component] = transparentBgContainer;\n },\n {}\n )\n )\n};\n\nexport default themeToken;\n","export { default } from './Layout';\nexport { default as Layout } from './Layout';\nexport { default as Page } from './Page';\nexport { default as isMobile, MOBILE_BREAKPOINT } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\n\nexport {\n MOBILE_BREAKPOINT as mobileBreakpoint,\n ResponsiveProvider,\n useBreakpoint,\n useMediaQuery,\n usePopupContainer,\n useScrollElement,\n useResponsiveContext,\n RESPONSIVE_CONTAINER_CLASS,\n RESPONSIVE_BOUNDARY_CLASS,\n RESPONSIVE_SCROLL_CLASS\n} from '@kne/responsive-utils';\n\nimport('./icons/index');\n"],"names":["UserCard","name","avatar","email","phone","description","menuOpen","extra","_jsx","Image","Avatar","id","src","shape","size","alt","_jsxs","Flex","gap","justify","children","vertical","className","classnames","style","MENU_ITEM_HEIGHT","MENU_GROUP_HEIGHT","MENU_GROUP_SPLIT_HEIGHT","getItemKey","item","index","key","path","Menu","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","listRef","useRef","virtualListRef","listHeight","setListHeight","useState","currentPathname","pathname","replace","RegExp","isItemActive","useCallback","ensureSlash","getEstimatedItemHeight","hasGroup","group","estimatedItemHeight","useMemo","length","total","reduce","sum","Math","max","ceil","listData","map","activeIndex","findIndex","useLayoutEffect","el","current","updateHeight","styles","getComputedStyle","paddingY","parseFloat","paddingTop","paddingBottom","clientHeight","observer","ResizeObserver","observe","disconnect","scrollTo","align","renderMenuItem","active","icon","title","label","onClick","e","event","groupLabel","Icon","type","fontClassName","isValidElement","isPlainObject","ref","VirtualList","data","height","itemHeight","itemKey","virtual","context","createContext","useContext","useReactContext","Provider","resolveTarget","target","Toolbar","show","getScrollElement","useScrollElement","getBoundaryElement","usePopupContainer","mode","useResponsiveContext","isMobile","useIsMobile","scrollReady","toolbarMenu","filter","toolbar","itemRefs","firstRenderRef","indicator","setIndicator","left","width","scale","visible","clicked","setClicked","scrolling","setScrolling","scrollTimerRef","displayIndex","explicitTarget","useBoundaryMount","useViewportFixed","boundaryTarget","list","itemRect","getBoundingClientRect","listRect","newLeft","newWidth","prev","t1","setTimeout","t2","clearTimeout","useEffect","scrollEl","addEventListener","handleScroll","passive","removeEventListener","toolbarList","onAnimationEnd","transform","flex","createPortal","locale","systemError","refresh","withLocale","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","ErrorComponent","formatMessage","useIntl","Alert","message","showIcon","action","Button","danger","window","reload","ErrorBoundary","props","ReactErrorBoundary","errorComponent","resolvePageScrollElement","pageScrollRef","openScrollbar","deviceIsMobile","anchor","marked","findResponsiveScroll","parentElement","scrollParent","findScrollParent","getDefaultScrollElement","nodeType","wrapper","querySelector","LayoutResponsiveScope","_ref","boundaryRef","scrollRef","parent","inheritBoundary","ResponsiveProvider","containerWidth","fromParent","undefined","LayoutMenuOpenKey","DRAG_THRESHOLD","MobileAiEntry","_ref2","variant","onOpen","btnRef","dragRef","_useState","pos","setPos","handlePointerDown","node","container","offsetParent","rect","refLeft","refTop","top","startX","clientX","startY","clientY","originLeft","originTop","refWidth","clientWidth","innerWidth","refHeight","innerHeight","offsetWidth","moved","setPointerCapture","pointerId","handlePointerMove","drag","dx","dy","abs","maxLeft","maxTop","min","handlePointerUp","_btnRef$current","releasePointerCapture","right","bottom","onPointerDown","onPointerMove","onPointerUp","colorful","Layout","_ref3","menu","_ref3$background","background","_ref3$menuMaxWidth","menuMaxWidth","_ref3$menuMinWidth","menuMinWidth","logo","menuHeader","userInfo","_ref3$aiDialog","aiDialog","openScrollbarProps","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","responsiveContext","useMenuPortal","_useState2","menuPortalTarget","setMenuPortalTarget","_useState3","setMenuOpen","_useState4","toolbarShow","setToolbarShow","_useState5","navbarShow","setNavbarShow","_useState6","aiType","setAiType","_useState7","setScrollReady","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","Object","assign","defaultLogo","topRef","pageRef","layoutBoundaryRef","getPageScrollElement","handlePageScrollRef","version","_topRef$current","scrollIntoView","userCard","_extends","menuPortalVars","layerMenuNode","menuNode","setItem","ExpandIcon","portalMenu","aiDialogWindow","content","aiEntryMobile","aiPortalVars","aiOverlayContent","_Fragment","aiOverlay","value","RESPONSIVE_BOUNDARY_CLASS","minHeight","Row","Col","span","RESPONSIVE_CONTAINER_CLASS","SimpleBar","RESPONSIVE_SCROLL_CLASS","PageLoading","Skeleton","Page","_ref$extra","back","buttonProps","_ref$toolbar","_ref$navbar","navbar","noPadding","_useContext","_useResponsiveContext","navbarRef","isScrolled","setIsScrolled","boundEl","remove","bind","threshold","offsetHeight","scrollTop","raf","requestAnimationFrame","cancelAnimationFrame","titleExtraContent","actions","ButtonGroup","showLength","moreType","navbarInner","open","navbarEl","pageInnerClassNameOrigin","pageInnerClassName","render","pageLoading","matchMedia","IS_MOBILE_QUERY","matches","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","result","component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/context.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/Layout/index.js","../src/Page/index.js","../src/isMobile.js","../src/themeToken.js","../src/index.js"],"sourcesContent":["import { Image } from '@kne/react-file';\nimport { Flex } from 'antd';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst UserCard = ({ name, avatar, email, phone, description, menuOpen, extra }) => {\n if (!menuOpen) {\n return <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />;\n }\n return (\n <Flex gap={12} justify=\"center\">\n <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />\n <Flex vertical>\n <div className={classnames('username', style['username'])}>{name || '-'}</div>\n <div className={classnames('user-description', style['user-description'])}>{email || phone || description || '-'}</div>\n {extra}\n </Flex>\n </Flex>\n );\n};\n\nexport default UserCard;\n","import { Flex } from 'antd';\nimport { isValidElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport classnames from 'classnames';\nimport Icon from '@kne/react-icon';\nimport ensureSlash from '@kne/ensure-slash';\nimport isPlainObject from 'lodash/isPlainObject';\nimport VirtualList from 'rc-virtual-list';\nimport style from './style.module.scss';\n\nconst MENU_ITEM_HEIGHT = 52;\nconst MENU_GROUP_HEIGHT = 48;\nconst MENU_GROUP_SPLIT_HEIGHT = 17;\n\nconst getItemKey = (item, index) => item.key || item.path || index;\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const listRef = useRef(null);\n const virtualListRef = useRef(null);\n const [listHeight, setListHeight] = useState(0);\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n\n const isItemActive = useCallback(\n item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { menuOpen, base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n },\n [activeKey, base, currentPathname, menuOpen]\n );\n\n const getEstimatedItemHeight = useCallback(\n (item, index) => {\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n if (!hasGroup) {\n return MENU_ITEM_HEIGHT;\n }\n return MENU_ITEM_HEIGHT + (menuOpen ? MENU_GROUP_HEIGHT : MENU_GROUP_SPLIT_HEIGHT);\n },\n [items, menuOpen]\n );\n\n const estimatedItemHeight = useMemo(() => {\n if (!items.length) {\n return MENU_ITEM_HEIGHT;\n }\n const total = items.reduce((sum, item, index) => sum + getEstimatedItemHeight(item, index), 0);\n return Math.max(MENU_ITEM_HEIGHT, Math.ceil(total / items.length));\n }, [getEstimatedItemHeight, items]);\n\n const listData = useMemo(\n () =>\n items.map((item, index) => ({\n item,\n index,\n key: getItemKey(item, index)\n })),\n [items]\n );\n\n const activeIndex = useMemo(() => listData.findIndex(({ item }) => isItemActive(item)), [isItemActive, listData]);\n\n useLayoutEffect(() => {\n const el = listRef.current;\n if (!el) {\n return;\n }\n const updateHeight = () => {\n const styles = getComputedStyle(el);\n const paddingY = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom);\n setListHeight(el.clientHeight - paddingY);\n };\n updateHeight();\n const observer = new ResizeObserver(updateHeight);\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (activeIndex < 0 || listHeight <= 0) {\n return;\n }\n virtualListRef.current?.scrollTo({\n index: activeIndex,\n align: 'auto'\n });\n }, [activeIndex, listHeight, menuOpen, listData.length]);\n\n const renderMenuItem = (item, index) => {\n const active = isItemActive(item);\n const icon = typeof item.icon === 'function' ? item.icon({ menuOpen, active }) : item.icon;\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n\n return (\n <div\n key={getItemKey(item, index)}\n title={item.label}\n onClick={e => {\n if (active) {\n return;\n }\n onChange && onChange(item, { menuOpen, base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { menuOpen, base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {hasGroup && menuOpen ? <div className={classnames('menu-group', style['menu-group'])}>{item.groupLabel || item.group}</div> : null}\n {hasGroup && !menuOpen ? <div className={classnames('menu-group-split', style['menu-group-split'])} /> : null}\n <Flex\n className={classnames('menu-item', style['menu-item'], {\n ['is-active']: active,\n ['is-closed']: !menuOpen\n })}\n align=\"center\"\n gap={8}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('menu-item-icon', style['menu-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('menu-item-icon', style['menu-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('menu-item-icon', style['menu-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n {menuOpen && item.label}\n </Flex>\n </div>\n );\n };\n\n return (\n <div ref={listRef} className={classnames('menu', className, style['menu-list'])}>\n {listHeight > 0 ? (\n <VirtualList ref={virtualListRef} data={listData} height={listHeight} itemHeight={estimatedItemHeight} itemKey=\"key\" virtual={listData.length > 0}>\n {({ item, index }) => renderMenuItem(item, index)}\n </VirtualList>\n ) : null}\n </div>\n );\n};\n\nexport default Menu;\n","import { createContext, useContext as useReactContext } from 'react';\n\nconst context = createContext({});\n\nexport const useContext = () => {\n return useReactContext(context);\n};\n\nexport const { Provider, Consumer } = context;\n\nexport default context;\n","import { createPortal } from 'react-dom';\nimport { Flex } from 'antd';\nimport ensureSlash from '@kne/ensure-slash';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport Icon from '@kne/react-icon';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport { isValidElement, useRef, useLayoutEffect, useState, useEffect } from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile } from '@kne/responsive-utils';\nimport { useContext } from '../context';\n\nconst resolveTarget = target => {\n if (!target) {\n return null;\n }\n return typeof target === 'function' ? target() : target;\n};\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const isMobile = useIsMobile();\n const { scrollReady } = useContext();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n const toolbarMenu = items.filter(item => item.toolbar);\n const itemRefs = useRef([]);\n const firstRenderRef = useRef(true);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, scale: 1, visible: false });\n const [clicked, setClicked] = useState(false);\n const [scrolling, setScrolling] = useState(false);\n const scrollTimerRef = useRef(null);\n\n const activeIndex = toolbarMenu.findIndex(item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n });\n const displayIndex = activeIndex >= 0 ? activeIndex : 0;\n\n const listRef = useRef(null);\n const explicitTarget = resolveTarget(target);\n const useBoundaryMount = isMobile && mode === 'container' && !explicitTarget;\n const useViewportFixed = isMobile && mode !== 'container' && !explicitTarget;\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useLayoutEffect(() => {\n if (activeIndex < 0) {\n return;\n }\n const item = itemRefs.current[activeIndex];\n const list = listRef.current;\n if (!item || !list) {\n return;\n }\n\n const itemRect = item.getBoundingClientRect();\n const listRect = list.getBoundingClientRect();\n const newLeft = itemRect.left - listRect.left;\n const newWidth = itemRect.width;\n\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n setIndicator({ left: newLeft, width: newWidth, scale: 1, visible: true });\n return;\n }\n\n setIndicator(prev => ({ ...prev, scale: 1.15 }));\n\n const t1 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, left: newLeft, width: newWidth }));\n }, 120);\n\n const t2 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, scale: 1 }));\n }, 380);\n\n return () => {\n clearTimeout(t1);\n clearTimeout(t2);\n };\n }, [activeIndex, show, target, useBoundaryMount, useViewportFixed]);\n\n useEffect(() => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function') {\n return;\n }\n const handleScroll = () => {\n setScrolling(true);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n scrollTimerRef.current = setTimeout(() => {\n setScrolling(false);\n }, 500);\n };\n\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n };\n }, [getScrollElement, show, scrollReady]);\n\n if (!show) {\n return null;\n }\n\n const toolbarList = (\n <Flex\n ref={listRef}\n className={classnames('toolbar-list', style['toolbar-list'], {\n ['is-clicked']: clicked,\n ['is-scrolling']: scrolling,\n [style['is-boundary']]: useBoundaryMount,\n [style['is-viewport']]: useViewportFixed\n })}\n style={{\n '--toolbar-count': toolbarMenu.length || 1\n }}\n onAnimationEnd={() => {\n if (clicked) {\n setClicked(false);\n }\n }}\n >\n {indicator.visible && (\n <div\n className={classnames('toolbar-indicator', style['toolbar-indicator'])}\n style={{\n left: `${indicator.left}px`,\n width: `${indicator.width}px`,\n transform: `scale(${indicator.scale})`\n }}\n />\n )}\n {toolbarMenu.map((item, index) => {\n const active = index === activeIndex;\n const icon = typeof item.icon === 'function' ? item.icon({ active }) : item.icon;\n return (\n <Flex\n key={item.key || item.path || index}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n vertical\n flex={1}\n justify=\"center\"\n align=\"center\"\n className={classnames('toolbar-item', style['toolbar-item'], {\n ['is-active']: active,\n [style['is-hidden']]: scrolling && index !== displayIndex\n })}\n onClick={e => {\n if (active) {\n return;\n }\n setClicked(true);\n onChange && onChange(item, { base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('toolbar-item-icon', style['toolbar-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n <div className={classnames('toolbar-item-label', style['toolbar-item-label'])}>{item.label}</div>\n </Flex>\n );\n })}\n </Flex>\n );\n\n if (useBoundaryMount && boundaryTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(<div className={classnames('toolbar-boundary-overlay', style['toolbar-boundary-overlay'])}>{toolbarList}</div>, boundaryTarget)}</div>;\n }\n\n if (useViewportFixed) {\n return <div className={classnames('toolbar', style['toolbar'], style['toolbar-inline'], className)}>{toolbarList}</div>;\n }\n\n if (explicitTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(toolbarList, explicitTarget)}</div>;\n }\n\n return null;\n};\n\nexport default Toolbar;\n","const locale = {\n systemError: '系统出了点小问题,可刷新页面进行解决',\n refresh: '刷新'\n};\n\nexport default locale;\n","const locale = {\n systemError: 'The system encountered a minor issue, please refresh the page to resolve it',\n refresh: 'Refresh'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'system-layout'\n});\n\nexport default withLocale;\n","import React from 'react';\nimport { Alert, Button } from 'antd';\nimport ReactErrorBoundary from '@kne/react-error-boundary';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../withLocale';\n\nconst ErrorComponent = withLocale(() => {\n const { formatMessage } = useIntl();\n return (\n <Alert\n message={formatMessage({ id: 'systemError' })}\n showIcon\n type=\"error\"\n action={\n <Button size=\"small\" danger onClick={() => window.location.reload()}>\n {formatMessage({ id: 'refresh' })}\n </Button>\n }\n />\n );\n});\n\nconst ErrorBoundary = props => {\n return <ReactErrorBoundary {...props} errorComponent={ErrorComponent} />;\n};\n\nexport default ErrorBoundary;\n","import { useMemo, useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Flex, Row, Col } from 'antd';\nimport classnames from 'classnames';\nimport localStorage from '@kne/local-storage';\nimport { Image } from '@kne/react-file';\nimport UserCard from './UserCard';\nimport Menu from '../Menu';\nimport Toolbar from '../Toolbar';\nimport Icon from '@kne/react-icon';\nimport defaultLogo from './defaultLogo.svg';\nimport { ReactComponent as ExpandIcon } from './expand.svg';\nimport style from './style.module.scss';\nimport ErrorBoundary from '../ErrorComponent';\nimport SimpleBar from 'simplebar-react';\nimport { Provider } from '../context';\nimport { useLocation } from 'react-router-dom';\nimport useIsMobile from '../useIsMobile';\nimport { ResponsiveProvider, useResponsiveContext, findResponsiveScroll, findScrollParent, getDefaultScrollElement, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS } from '@kne/responsive-utils';\nimport 'simplebar-react/dist/simplebar.min.css';\n\nconst normalizeMarkedScrollElement = marked => {\n if (!marked) {\n return null;\n }\n if (typeof marked.getScrollElement === 'function') {\n const fromApi = marked.getScrollElement();\n if (fromApi) {\n return fromApi;\n }\n }\n if (marked.nodeType === 1) {\n const wrapper = marked.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return marked;\n};\n\nconst resolveDocumentScrollElement = () => {\n if (typeof document === 'undefined') {\n return null;\n }\n // 真实移动端滚 document,不要走 getDefaultScrollElement:\n // 它会 document.querySelector(.kne-responsive-scroll),容易绑到宿主页无关节点。\n return document.scrollingElement || document.documentElement || document.body || null;\n};\n\nconst resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {\n if (deviceIsMobile && !openScrollbar) {\n const anchor = pageScrollRef.current;\n if (anchor) {\n // 优先真实可滚祖先(example 手机外框 SimpleBar content-wrapper)\n const scrollParent = findScrollParent(anchor);\n if (scrollParent) {\n return scrollParent;\n }\n // class 标记的外层可能不是滚动节点,需归一到 content-wrapper\n const marked = normalizeMarkedScrollElement(findResponsiveScroll(anchor.parentElement || anchor));\n if (marked) {\n return marked;\n }\n }\n return resolveDocumentScrollElement();\n }\n const anchor = pageScrollRef.current;\n if (anchor && typeof anchor.getScrollElement === 'function') {\n return anchor.getScrollElement();\n }\n if (anchor && anchor.nodeType === 1 && openScrollbar) {\n const wrapper = anchor.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return findResponsiveScroll(anchor) || getDefaultScrollElement();\n};\n\n// 始终覆盖本页 scroller(否则嵌套在 Global 下 sticky 会绑到 body)。\n// container 模式(example 手机外框)保留外层 boundary,toolbar/menu 才能 portal 到\n// .example-driver-device-scroll(非滚动内容区),absolute/fixed 相对手机视口生效。\nconst LayoutResponsiveScope = ({ boundaryRef, scrollRef, getScrollElement, children }) => {\n const parent = useResponsiveContext();\n const inheritBoundary = parent.mode === 'container';\n return (\n <ResponsiveProvider\n mode={parent.mode}\n containerWidth={parent.containerWidth}\n boundaryRef={boundaryRef}\n scrollRef={scrollRef}\n getScrollElement={getScrollElement}\n getBoundaryElement={\n inheritBoundary\n ? () => {\n const fromParent = typeof parent.getBoundaryElement === 'function' ? parent.getBoundaryElement() : null;\n return fromParent || null;\n }\n : undefined\n }\n >\n {children}\n </ResponsiveProvider>\n );\n};\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\n\nconst DRAG_THRESHOLD = 4;\n\nconst MobileAiEntry = ({ variant, onOpen }) => {\n const btnRef = useRef(null);\n const dragRef = useRef(null);\n const [pos, setPos] = useState(null);\n\n const handlePointerDown = event => {\n const node = btnRef.current;\n if (!node) {\n return;\n }\n // 与 toolbar 一致:boundary 模式下相对定位容器为 offsetParent,viewport 模式下相对视口\n const container = node.offsetParent;\n const rect = node.getBoundingClientRect();\n const refLeft = container ? container.getBoundingClientRect().left : 0;\n const refTop = container ? container.getBoundingClientRect().top : 0;\n dragRef.current = {\n startX: event.clientX,\n startY: event.clientY,\n originLeft: rect.left - refLeft,\n originTop: rect.top - refTop,\n refWidth: container ? container.clientWidth : window.innerWidth,\n refHeight: container ? container.clientHeight : window.innerHeight,\n size: node.offsetWidth,\n moved: false\n };\n node.setPointerCapture?.(event.pointerId);\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const dx = event.clientX - drag.startX;\n const dy = event.clientY - drag.startY;\n if (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD) {\n drag.moved = true;\n }\n const maxLeft = Math.max(8, drag.refWidth - drag.size - 8);\n const maxTop = Math.max(8, drag.refHeight - drag.size - 8);\n setPos({\n left: Math.min(Math.max(8, drag.originLeft + dx), maxLeft),\n top: Math.min(Math.max(8, drag.originTop + dy), maxTop)\n });\n };\n\n const handlePointerUp = event => {\n const drag = dragRef.current;\n dragRef.current = null;\n btnRef.current?.releasePointerCapture?.(event.pointerId);\n if (drag && !drag.moved) {\n onOpen();\n }\n };\n\n return (\n <div\n ref={btnRef}\n className={classnames('ai-entry-mobile', style['ai-entry-mobile'], {\n [style['is-viewport']]: variant === 'viewport',\n [style['is-boundary']]: variant !== 'viewport'\n })}\n style={pos ? { left: `${pos.left}px`, top: `${pos.top}px`, right: 'auto', bottom: 'auto' } : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n );\n};\n\nconst Layout = ({\n className,\n menu,\n background = 'linear-gradient(0deg, #BBCFE7 0%, #BBCFE7 100%), #FFFFFF',\n menuMaxWidth = '254px',\n menuMinWidth = '84px',\n logo,\n menuHeader,\n userInfo,\n aiDialog = null,\n openScrollbar: openScrollbarProps,\n isMobile: isMobileProps,\n toolbarTarget,\n children\n}) => {\n const localMenuOpen = localStorage.getItem(LayoutMenuOpenKey);\n const isMobile = useIsMobile();\n const responsiveContext = useResponsiveContext();\n const deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\n const useMenuPortal = deviceIsMobile && responsiveContext.mode === 'container';\n const [menuPortalTarget, setMenuPortalTarget] = useState(null);\n const [menuOpen, setMenuOpen] = useState(typeof localMenuOpen === 'boolean' && !deviceIsMobile ? localMenuOpen : !deviceIsMobile);\n const [toolbarShow, setToolbarShow] = useState(true);\n const [navbarShow, setNavbarShow] = useState(true);\n const [aiType, setAiType] = useState('closed');\n const [scrollReady, setScrollReady] = useState(0);\n const openScrollbar = typeof openScrollbarProps === 'boolean' ? openScrollbarProps : !deviceIsMobile && !window.__COMPONENTS_CORE_SIMPLE_BAR_DISABLED;\n const userAvatar = userInfo?.avatar;\n const contextValue = useMemo(() => {\n return {\n setToolbarShow,\n setNavbarShow,\n setMenuOpen,\n deviceIsMobile,\n scrollReady,\n logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar, scrollReady]);\n const topRef = useRef(null);\n const pageRef = useRef(null);\n const layoutBoundaryRef = useRef(null);\n const pageScrollRef = useRef(null);\n const location = useLocation();\n const getPageScrollElement = useCallback(() => {\n return resolvePageScrollElement(pageScrollRef, openScrollbar, deviceIsMobile);\n }, [openScrollbar, deviceIsMobile]);\n\n const handlePageScrollRef = useCallback(node => {\n pageScrollRef.current = node;\n if (node) {\n setScrollReady(version => version + 1);\n }\n }, []);\n\n useEffect(() => {\n if (!useMenuPortal) {\n setMenuPortalTarget(null);\n return;\n }\n const target = typeof responsiveContext.getBoundaryElement === 'function' ? responsiveContext.getBoundaryElement() : null;\n setMenuPortalTarget(target || null);\n }, [useMenuPortal, responsiveContext, scrollReady]);\n\n useEffect(() => {\n const scrollEl = getPageScrollElement();\n if (scrollEl && typeof scrollEl.scrollTo === 'function') {\n scrollEl.scrollTo(0, 0);\n return;\n }\n topRef.current?.scrollIntoView();\n }, [location, getPageScrollElement]);\n\n const userCard = <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />;\n\n const menuPortalVars = useMenuPortal\n ? {\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }\n : undefined;\n\n const layerMenuNode = deviceIsMobile ? (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n ) : null;\n\n const menuNode = (\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n >\n <div className={classnames('logo', style['logo'])}>\n <Image className={style['logo-img']} {...contextValue.logo} />\n </div>\n <div\n className={classnames('expand-btn-wrapper', style['expand-btn-wrapper'])}\n onClick={() => {\n setMenuOpen(menuOpen => {\n localStorage.setItem(LayoutMenuOpenKey, !menuOpen);\n return !menuOpen;\n });\n }}\n >\n <ExpandIcon\n className={classnames('expand-btn', style['expand-btn'], {\n 'is-closed': !menuOpen\n })}\n />\n </div>\n <div className={classnames('menu-inner', style['menu-inner'])}>\n <div className={classnames('menu-header', style['menu-header'])}>\n <ErrorBoundary>{menuHeader ? (typeof menuHeader === 'function' ? menuHeader({ menuOpen, userCard }) : menuHeader) : userCard}</ErrorBoundary>\n </div>\n <ErrorBoundary>\n <Menu\n className={classnames('menu-list', style['menu-list'])}\n menuOpen={menuOpen}\n {...menu}\n onChange={() => {\n deviceIsMobile && setMenuOpen(false);\n }}\n />\n </ErrorBoundary>\n {aiDialog && !deviceIsMobile && (\n <div\n className={classnames('ai-entry', style['ai-entry'])}\n onClick={() => {\n setAiType('small');\n }}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n )}\n </div>\n </div>\n );\n\n const portalMenu = useMenuPortal && menuPortalTarget;\n\n const aiDialogWindow =\n aiDialog && aiType === 'small' ? (\n <div\n className={classnames('ai-dialog-window', style['ai-dialog-window'], {\n 'is-mobile-full': deviceIsMobile,\n [style['is-mobile-full']]: deviceIsMobile,\n [style['is-viewport']]: deviceIsMobile && !portalMenu\n })}\n >\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n {!deviceIsMobile && (\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\n }}\n />\n )}\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('ai-dialog-window-content', style['ai-dialog-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n ) : null;\n\n const aiEntryMobile = deviceIsMobile && aiDialog && aiType === 'closed' ? <MobileAiEntry variant={portalMenu ? 'boundary' : 'viewport'} onOpen={() => setAiType('small')} /> : null;\n\n // portal 到 boundary(popup 挂载点)时,layout 上的 CSS 变量不会随 portal 继承,需要显式透传\n const aiPortalVars = {\n '--background': background,\n '--toolbar-height': deviceIsMobile && toolbarShow ? '72px' : '0px',\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n };\n\n const aiOverlayContent =\n aiDialogWindow || aiEntryMobile ? (\n <>\n {aiDialogWindow}\n {aiEntryMobile}\n </>\n ) : null;\n\n const aiOverlay = !aiOverlayContent\n ? null\n : portalMenu\n ? createPortal(\n <div className={classnames('ai-boundary-overlay', style['ai-boundary-overlay'])} style={aiPortalVars}>\n {aiOverlayContent}\n </div>,\n menuPortalTarget\n )\n : aiOverlayContent;\n\n return (\n <LayoutResponsiveScope boundaryRef={layoutBoundaryRef} scrollRef={pageScrollRef} getScrollElement={getPageScrollElement}>\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n ref={layoutBoundaryRef}\n className={classnames(className, 'layout', style['layout'], RESPONSIVE_BOUNDARY_CLASS, {\n 'is-mobile': deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n 'has-toolbar': deviceIsMobile && toolbarShow,\n [style['has-toolbar']]: deviceIsMobile && toolbarShow,\n 'has-navbar': deviceIsMobile && navbarShow,\n [style['has-navbar']]: deviceIsMobile && navbarShow\n })}\n style={{\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }}\n >\n {!portalMenu && layerMenuNode}\n <Flex style={{ flex: 1, minHeight: 0, width: '100%', height: 0 }}>\n {!portalMenu && menuNode}\n {portalMenu &&\n createPortal(\n <div className={classnames(style['menu-boundary-overlay'])} style={menuPortalVars}>\n {layerMenuNode}\n {menuNode}\n </div>,\n menuPortalTarget\n )}\n <Flex flex={1} ref={pageRef} className={classnames('page', style['page'])}>\n <Row className={classnames('page-content', style['page-content'])}>\n {!deviceIsMobile && aiDialog && aiType === 'inner' && (\n <Col span={8} className={classnames('page-dialog-outer', style['page-dialog-outer'])}>\n <div className={classnames('page-dialog', style['page-dialog'])}>\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('page-window-content', style['page-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n </Col>\n )}\n <Col span={!deviceIsMobile && aiDialog && aiType === 'inner' ? 16 : 24} className={RESPONSIVE_CONTAINER_CLASS}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], !deviceIsMobile && 'is-scroller', !deviceIsMobile && style['is-scroller'], !deviceIsMobile && RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n </Flex>\n {aiOverlay}\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={toolbarTarget} />\n </div>\n </Provider>\n </LayoutResponsiveScope>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useRef, useState } from 'react';\nimport Icon from '@kne/react-icon';\nimport ButtonGroup from '@kne/button-group';\nimport classnames from 'classnames';\nimport { useNavigate } from 'react-router-dom';\nimport { useScrollElement, usePopupContainer, useResponsiveContext } from '@kne/responsive-utils';\nimport { useContext } from '../context';\nimport style from './style.module.scss';\nimport { Image } from '@kne/react-file';\n\nconst PageLoading = () => {\n return (\n <Flex flex={1} justify=\"center\">\n <div className={style['page-loading']}>\n <Skeleton active />\n </div>\n </Flex>\n );\n};\n\nconst Page = ({ title, extra = null, back, buttonProps, children, toolbar = true, navbar = true, noPadding }) => {\n const { setToolbarShow, setNavbarShow, setMenuOpen, deviceIsMobile, userAvatar, scrollReady } = useContext();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const navbarRef = useRef(null);\n const [isScrolled, setIsScrolled] = useState(false);\n const useBoundaryMount = deviceIsMobile && mode === 'container';\n const useViewportFixed = deviceIsMobile && mode !== 'container';\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n useEffect(() => {\n if (!deviceIsMobile || !navbar) {\n return;\n }\n let boundKey = null;\n let remove = null;\n\n const bind = () => {\n const scrollEl = getScrollElement();\n if (!scrollEl) {\n return;\n }\n const isDocumentScroll = typeof document !== 'undefined' && (scrollEl === document.scrollingElement || scrollEl === document.documentElement || scrollEl === document.body);\n // document 滚动在部分环境听 element 不稳定,统一挂 window\n const listenTarget = isDocumentScroll ? window : scrollEl;\n if (!listenTarget || typeof listenTarget.addEventListener !== 'function') {\n return;\n }\n const nextKey = isDocumentScroll ? 'window' : scrollEl;\n if (nextKey === boundKey) {\n return;\n }\n if (typeof remove === 'function') {\n remove();\n }\n boundKey = nextKey;\n const readScrollTop = () => {\n if (isDocumentScroll) {\n return document.scrollingElement?.scrollTop ?? window.scrollY ?? 0;\n }\n return scrollEl.scrollTop || 0;\n };\n const handleScroll = () => {\n const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;\n setIsScrolled(readScrollTop() > threshold);\n };\n handleScroll();\n listenTarget.addEventListener('scroll', handleScroll, { passive: true });\n remove = () => listenTarget.removeEventListener('scroll', handleScroll);\n };\n\n bind();\n // SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定\n const raf = requestAnimationFrame(bind);\n return () => {\n cancelAnimationFrame(raf);\n if (typeof remove === 'function') {\n remove();\n }\n };\n }, [deviceIsMobile, navbar, getScrollElement, scrollReady]);\n\n const titleExtraContent = (() => {\n if (extra) {\n if (deviceIsMobile && userAvatar) {\n return (\n <Flex gap={4} align=\"center\">\n {extra}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n );\n }\n return extra;\n }\n if (deviceIsMobile && (buttonProps || userAvatar)) {\n const actions = buttonProps ? (\n <div className={classnames('page-title-actions', style['page-title-actions'])}>\n <ButtonGroup {...Object.assign({}, buttonProps, { showLength: 0, moreType: 'link' })} />\n </div>\n ) : null;\n const avatar = userAvatar ? <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" /> : null;\n // 仅更多按钮时不要套带 gap 的 Flex,否则 ButtonGroup 测宽空节点也会吃 gap,导致不居中\n if (actions && avatar) {\n return (\n <Flex gap={4} align=\"center\">\n {actions}\n {avatar}\n </Flex>\n );\n }\n return actions || avatar;\n }\n if (buttonProps) {\n return <ButtonGroup {...buttonProps} />;\n }\n return null;\n })();\n\n const navbarInner = navbar ? (\n <Flex\n ref={navbarRef}\n justify=\"space-between\"\n align=\"center\"\n gap={20}\n className={classnames('page-header', style['page-header'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n ['is-scrolled']: isScrolled,\n [style['is-scrolled']]: isScrolled,\n [style['is-boundary']]: useBoundaryMount && !!boundaryTarget,\n [style['is-viewport']]: useViewportFixed || (useBoundaryMount && !boundaryTarget)\n })}\n >\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typearrow_forward_ios\" fontClassName=\"system\" />}\n onClick={() => {\n navigate(-1);\n }}\n />\n )}\n {!back && deviceIsMobile && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typeequal\" fontClassName=\"system\" />}\n onClick={() => {\n setMenuOpen(open => !open);\n }}\n />\n )}\n <div className={classnames('page-title', style['page-title'])}>{title}</div>\n </Flex>\n {titleExtraContent ? <div className={classnames('page-title-extra', style['page-title-extra'], style['has-float'])}>{titleExtraContent}</div> : null}\n </Flex>\n ) : null;\n\n const navbarEl =\n navbarInner && useBoundaryMount && boundaryTarget\n ? createPortal(\n <div\n className={classnames('page-header-boundary-overlay', style['page-header-boundary-overlay'])}\n style={{\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n }}\n >\n {navbarInner}\n </div>,\n boundaryTarget\n )\n : navbarInner;\n\n const pageInnerClassNameOrigin = classnames('page-inner', style['page-inner']);\n const pageInnerClassName = classnames(pageInnerClassNameOrigin, {\n ['no-padding']: noPadding,\n [style['no-padding']]: noPadding\n });\n\n const render = ({ children, className }) => {\n return (\n <>\n <div className={style['page-top']} />\n <Flex vertical flex={1}>\n {navbarEl}\n <Flex vertical flex={1} className={classnames(pageInnerClassNameOrigin, className)}>\n {children}\n </Flex>\n </Flex>\n <div className={style['page-bottom']} />\n </>\n );\n };\n\n return (\n <Flex\n vertical\n flex={1}\n className={classnames('page', style['page'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile\n })}\n >\n {typeof children === 'function'\n ? children({\n navbar: navbarEl,\n className: pageInnerClassName,\n render,\n pageLoading: render({\n children: <PageLoading />\n })\n })\n : render({ children })}\n </Flex>\n );\n};\n\nPage.PageLoading = PageLoading;\n\nexport default Page;\n","import { IS_MOBILE_QUERY, MOBILE_BREAKPOINT } from '@kne/responsive-utils';\n\nconst isMobile = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(IS_MOBILE_QUERY).matches;\n};\n\nexport default isMobile;\nexport { MOBILE_BREAKPOINT };\n","import merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker', 'Tabs'];\n\nconst themeToken = {\n components: merge(\n {},\n transform(\n transparentBgContainerComponents,\n (result, component) => {\n result[component] = transparentBgContainer;\n },\n {}\n )\n )\n};\n\nexport default themeToken;\n","export { default } from './Layout';\nexport { default as Layout } from './Layout';\nexport { default as Page } from './Page';\nexport { default as isMobile, MOBILE_BREAKPOINT } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\n\nexport {\n MOBILE_BREAKPOINT as mobileBreakpoint,\n ResponsiveProvider,\n useBreakpoint,\n useMediaQuery,\n usePopupContainer,\n useScrollElement,\n useResponsiveContext,\n RESPONSIVE_CONTAINER_CLASS,\n RESPONSIVE_BOUNDARY_CLASS,\n RESPONSIVE_SCROLL_CLASS\n} from '@kne/responsive-utils';\n\nimport('./icons/index');\n"],"names":["UserCard","name","avatar","email","phone","description","menuOpen","extra","_jsx","Image","Avatar","id","src","shape","size","alt","_jsxs","Flex","gap","justify","children","vertical","className","classnames","style","MENU_ITEM_HEIGHT","MENU_GROUP_HEIGHT","MENU_GROUP_SPLIT_HEIGHT","getItemKey","item","index","key","path","Menu","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","listRef","useRef","virtualListRef","listHeight","setListHeight","useState","currentPathname","pathname","replace","RegExp","isItemActive","useCallback","ensureSlash","getEstimatedItemHeight","hasGroup","group","estimatedItemHeight","useMemo","length","total","reduce","sum","Math","max","ceil","listData","map","activeIndex","findIndex","useLayoutEffect","el","current","updateHeight","styles","getComputedStyle","paddingY","parseFloat","paddingTop","paddingBottom","clientHeight","observer","ResizeObserver","observe","disconnect","scrollTo","align","renderMenuItem","active","icon","title","label","onClick","e","event","groupLabel","Icon","type","fontClassName","isValidElement","isPlainObject","ref","VirtualList","data","height","itemHeight","itemKey","virtual","context","createContext","useContext","useReactContext","Provider","resolveTarget","target","Toolbar","show","getScrollElement","useScrollElement","getBoundaryElement","usePopupContainer","mode","useResponsiveContext","isMobile","useIsMobile","scrollReady","toolbarMenu","filter","toolbar","itemRefs","firstRenderRef","indicator","setIndicator","left","width","scale","visible","clicked","setClicked","scrolling","setScrolling","scrollTimerRef","displayIndex","explicitTarget","useBoundaryMount","useViewportFixed","boundaryTarget","list","itemRect","getBoundingClientRect","listRect","newLeft","newWidth","prev","t1","setTimeout","t2","clearTimeout","useEffect","scrollEl","addEventListener","handleScroll","passive","removeEventListener","toolbarList","onAnimationEnd","transform","flex","createPortal","locale","systemError","refresh","withLocale","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","ErrorComponent","formatMessage","useIntl","Alert","message","showIcon","action","Button","danger","window","reload","ErrorBoundary","props","ReactErrorBoundary","errorComponent","normalizeMarkedScrollElement","marked","fromApi","nodeType","wrapper","querySelector","resolveDocumentScrollElement","document","scrollingElement","documentElement","body","resolvePageScrollElement","pageScrollRef","openScrollbar","deviceIsMobile","anchor","scrollParent","findScrollParent","findResponsiveScroll","parentElement","getDefaultScrollElement","LayoutResponsiveScope","_ref","boundaryRef","scrollRef","parent","inheritBoundary","ResponsiveProvider","containerWidth","fromParent","undefined","LayoutMenuOpenKey","DRAG_THRESHOLD","MobileAiEntry","_ref2","variant","onOpen","btnRef","dragRef","_useState","pos","setPos","handlePointerDown","node","container","offsetParent","rect","refLeft","refTop","top","startX","clientX","startY","clientY","originLeft","originTop","refWidth","clientWidth","innerWidth","refHeight","innerHeight","offsetWidth","moved","setPointerCapture","pointerId","handlePointerMove","drag","dx","dy","abs","maxLeft","maxTop","min","handlePointerUp","_btnRef$current","releasePointerCapture","right","bottom","onPointerDown","onPointerMove","onPointerUp","colorful","Layout","_ref3","menu","_ref3$background","background","_ref3$menuMaxWidth","menuMaxWidth","_ref3$menuMinWidth","menuMinWidth","logo","menuHeader","userInfo","_ref3$aiDialog","aiDialog","openScrollbarProps","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","responsiveContext","useMenuPortal","_useState2","menuPortalTarget","setMenuPortalTarget","_useState3","setMenuOpen","_useState4","toolbarShow","setToolbarShow","_useState5","navbarShow","setNavbarShow","_useState6","aiType","setAiType","_useState7","setScrollReady","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","Object","assign","defaultLogo","topRef","pageRef","layoutBoundaryRef","getPageScrollElement","handlePageScrollRef","version","_topRef$current","scrollIntoView","userCard","_extends","menuPortalVars","layerMenuNode","menuNode","setItem","ExpandIcon","portalMenu","aiDialogWindow","content","aiEntryMobile","aiPortalVars","aiOverlayContent","_Fragment","aiOverlay","value","RESPONSIVE_BOUNDARY_CLASS","minHeight","Row","Col","span","RESPONSIVE_CONTAINER_CLASS","SimpleBar","RESPONSIVE_SCROLL_CLASS","PageLoading","Skeleton","Page","_ref$extra","back","buttonProps","_ref$toolbar","_ref$navbar","navbar","noPadding","_useContext","_useResponsiveContext","navbarRef","isScrolled","setIsScrolled","boundKey","remove","bind","isDocumentScroll","listenTarget","nextKey","readScrollTop","_document$scrollingEl","_document$scrollingEl2","scrollTop","scrollY","threshold","offsetHeight","raf","requestAnimationFrame","cancelAnimationFrame","titleExtraContent","actions","ButtonGroup","showLength","moreType","navbarInner","open","navbarEl","pageInnerClassNameOrigin","pageInnerClassName","render","pageLoading","matchMedia","IS_MOBILE_QUERY","matches","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","result","component"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -10,7 +10,7 @@ import Icon from '@kne/react-icon';
|
|
|
10
10
|
import ensureSlash from '@kne/ensure-slash';
|
|
11
11
|
import isPlainObject from 'lodash/isPlainObject';
|
|
12
12
|
import VirtualList from 'rc-virtual-list';
|
|
13
|
-
import { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS,
|
|
13
|
+
import { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS, findScrollParent, findResponsiveScroll, getDefaultScrollElement, ResponsiveProvider, IS_MOBILE_QUERY } from '@kne/responsive-utils';
|
|
14
14
|
export { MOBILE_BREAKPOINT, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS, ResponsiveProvider, MOBILE_BREAKPOINT as mobileBreakpoint, useBreakpoint, useIsMobile, useMediaQuery, usePopupContainer, useResponsiveContext, useScrollElement } from '@kne/responsive-utils';
|
|
15
15
|
import defaultLogo from './defaultLogo~beHinxEU.svg';
|
|
16
16
|
import { ReactComponent } from './expand~bdCTnjYJ.svg';
|
|
@@ -535,22 +535,48 @@ const ErrorBoundary = props => {
|
|
|
535
535
|
}));
|
|
536
536
|
};
|
|
537
537
|
|
|
538
|
+
const normalizeMarkedScrollElement = marked => {
|
|
539
|
+
if (!marked) {
|
|
540
|
+
return null;
|
|
541
|
+
}
|
|
542
|
+
if (typeof marked.getScrollElement === 'function') {
|
|
543
|
+
const fromApi = marked.getScrollElement();
|
|
544
|
+
if (fromApi) {
|
|
545
|
+
return fromApi;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
if (marked.nodeType === 1) {
|
|
549
|
+
const wrapper = marked.querySelector('.simplebar-content-wrapper');
|
|
550
|
+
if (wrapper) {
|
|
551
|
+
return wrapper;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
return marked;
|
|
555
|
+
};
|
|
556
|
+
const resolveDocumentScrollElement = () => {
|
|
557
|
+
if (typeof document === 'undefined') {
|
|
558
|
+
return null;
|
|
559
|
+
}
|
|
560
|
+
// 真实移动端滚 document,不要走 getDefaultScrollElement:
|
|
561
|
+
// 它会 document.querySelector(.kne-responsive-scroll),容易绑到宿主页无关节点。
|
|
562
|
+
return document.scrollingElement || document.documentElement || document.body || null;
|
|
563
|
+
};
|
|
538
564
|
const resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {
|
|
539
565
|
if (deviceIsMobile && !openScrollbar) {
|
|
540
566
|
const _anchor = pageScrollRef.current;
|
|
541
567
|
if (_anchor) {
|
|
542
|
-
// example
|
|
543
|
-
// findScrollParent 不依赖 kne-responsive-scroll,避免 is-scrolled 监听绑错。
|
|
544
|
-
const marked = findResponsiveScroll(_anchor.parentElement || _anchor);
|
|
545
|
-
if (marked) {
|
|
546
|
-
return marked;
|
|
547
|
-
}
|
|
568
|
+
// 优先真实可滚祖先(example 手机外框 SimpleBar content-wrapper)
|
|
548
569
|
const scrollParent = findScrollParent(_anchor);
|
|
549
570
|
if (scrollParent) {
|
|
550
571
|
return scrollParent;
|
|
551
572
|
}
|
|
573
|
+
// class 标记的外层可能不是滚动节点,需归一到 content-wrapper
|
|
574
|
+
const marked = normalizeMarkedScrollElement(findResponsiveScroll(_anchor.parentElement || _anchor));
|
|
575
|
+
if (marked) {
|
|
576
|
+
return marked;
|
|
577
|
+
}
|
|
552
578
|
}
|
|
553
|
-
return
|
|
579
|
+
return resolveDocumentScrollElement();
|
|
554
580
|
}
|
|
555
581
|
const anchor = pageScrollRef.current;
|
|
556
582
|
if (anchor && typeof anchor.getScrollElement === 'function') {
|
|
@@ -1019,26 +1045,43 @@ const Page = ({
|
|
|
1019
1045
|
if (!deviceIsMobile || !_navbar) {
|
|
1020
1046
|
return;
|
|
1021
1047
|
}
|
|
1022
|
-
let
|
|
1048
|
+
let boundKey = null;
|
|
1023
1049
|
let remove = null;
|
|
1024
1050
|
const bind = () => {
|
|
1025
1051
|
const scrollEl = getScrollElement();
|
|
1026
|
-
if (!scrollEl
|
|
1052
|
+
if (!scrollEl) {
|
|
1053
|
+
return;
|
|
1054
|
+
}
|
|
1055
|
+
const isDocumentScroll = typeof document !== 'undefined' && (scrollEl === document.scrollingElement || scrollEl === document.documentElement || scrollEl === document.body);
|
|
1056
|
+
// document 滚动在部分环境听 element 不稳定,统一挂 window
|
|
1057
|
+
const listenTarget = isDocumentScroll ? window : scrollEl;
|
|
1058
|
+
if (!listenTarget || typeof listenTarget.addEventListener !== 'function') {
|
|
1059
|
+
return;
|
|
1060
|
+
}
|
|
1061
|
+
const nextKey = isDocumentScroll ? 'window' : scrollEl;
|
|
1062
|
+
if (nextKey === boundKey) {
|
|
1027
1063
|
return;
|
|
1028
1064
|
}
|
|
1029
1065
|
if (typeof remove === 'function') {
|
|
1030
1066
|
remove();
|
|
1031
1067
|
}
|
|
1032
|
-
|
|
1068
|
+
boundKey = nextKey;
|
|
1069
|
+
const readScrollTop = () => {
|
|
1070
|
+
if (isDocumentScroll) {
|
|
1071
|
+
var _ref, _document$scrollingEl, _document$scrollingEl2;
|
|
1072
|
+
return (_ref = (_document$scrollingEl = (_document$scrollingEl2 = document.scrollingElement) == null ? void 0 : _document$scrollingEl2.scrollTop) != null ? _document$scrollingEl : window.scrollY) != null ? _ref : 0;
|
|
1073
|
+
}
|
|
1074
|
+
return scrollEl.scrollTop || 0;
|
|
1075
|
+
};
|
|
1033
1076
|
const handleScroll = () => {
|
|
1034
1077
|
const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;
|
|
1035
|
-
setIsScrolled(
|
|
1078
|
+
setIsScrolled(readScrollTop() > threshold);
|
|
1036
1079
|
};
|
|
1037
1080
|
handleScroll();
|
|
1038
|
-
|
|
1081
|
+
listenTarget.addEventListener('scroll', handleScroll, {
|
|
1039
1082
|
passive: true
|
|
1040
1083
|
});
|
|
1041
|
-
remove = () =>
|
|
1084
|
+
remove = () => listenTarget.removeEventListener('scroll', handleScroll);
|
|
1042
1085
|
};
|
|
1043
1086
|
bind();
|
|
1044
1087
|
// SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/context.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/Layout/index.js","../src/Page/index.js","../src/isMobile.js","../src/themeToken.js","../src/index.js"],"sourcesContent":["import { Image } from '@kne/react-file';\nimport { Flex } from 'antd';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst UserCard = ({ name, avatar, email, phone, description, menuOpen, extra }) => {\n if (!menuOpen) {\n return <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />;\n }\n return (\n <Flex gap={12} justify=\"center\">\n <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />\n <Flex vertical>\n <div className={classnames('username', style['username'])}>{name || '-'}</div>\n <div className={classnames('user-description', style['user-description'])}>{email || phone || description || '-'}</div>\n {extra}\n </Flex>\n </Flex>\n );\n};\n\nexport default UserCard;\n","import { Flex } from 'antd';\nimport { isValidElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport classnames from 'classnames';\nimport Icon from '@kne/react-icon';\nimport ensureSlash from '@kne/ensure-slash';\nimport isPlainObject from 'lodash/isPlainObject';\nimport VirtualList from 'rc-virtual-list';\nimport style from './style.module.scss';\n\nconst MENU_ITEM_HEIGHT = 52;\nconst MENU_GROUP_HEIGHT = 48;\nconst MENU_GROUP_SPLIT_HEIGHT = 17;\n\nconst getItemKey = (item, index) => item.key || item.path || index;\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const listRef = useRef(null);\n const virtualListRef = useRef(null);\n const [listHeight, setListHeight] = useState(0);\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n\n const isItemActive = useCallback(\n item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { menuOpen, base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n },\n [activeKey, base, currentPathname, menuOpen]\n );\n\n const getEstimatedItemHeight = useCallback(\n (item, index) => {\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n if (!hasGroup) {\n return MENU_ITEM_HEIGHT;\n }\n return MENU_ITEM_HEIGHT + (menuOpen ? MENU_GROUP_HEIGHT : MENU_GROUP_SPLIT_HEIGHT);\n },\n [items, menuOpen]\n );\n\n const estimatedItemHeight = useMemo(() => {\n if (!items.length) {\n return MENU_ITEM_HEIGHT;\n }\n const total = items.reduce((sum, item, index) => sum + getEstimatedItemHeight(item, index), 0);\n return Math.max(MENU_ITEM_HEIGHT, Math.ceil(total / items.length));\n }, [getEstimatedItemHeight, items]);\n\n const listData = useMemo(\n () =>\n items.map((item, index) => ({\n item,\n index,\n key: getItemKey(item, index)\n })),\n [items]\n );\n\n const activeIndex = useMemo(() => listData.findIndex(({ item }) => isItemActive(item)), [isItemActive, listData]);\n\n useLayoutEffect(() => {\n const el = listRef.current;\n if (!el) {\n return;\n }\n const updateHeight = () => {\n const styles = getComputedStyle(el);\n const paddingY = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom);\n setListHeight(el.clientHeight - paddingY);\n };\n updateHeight();\n const observer = new ResizeObserver(updateHeight);\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (activeIndex < 0 || listHeight <= 0) {\n return;\n }\n virtualListRef.current?.scrollTo({\n index: activeIndex,\n align: 'auto'\n });\n }, [activeIndex, listHeight, menuOpen, listData.length]);\n\n const renderMenuItem = (item, index) => {\n const active = isItemActive(item);\n const icon = typeof item.icon === 'function' ? item.icon({ menuOpen, active }) : item.icon;\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n\n return (\n <div\n key={getItemKey(item, index)}\n title={item.label}\n onClick={e => {\n if (active) {\n return;\n }\n onChange && onChange(item, { menuOpen, base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { menuOpen, base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {hasGroup && menuOpen ? <div className={classnames('menu-group', style['menu-group'])}>{item.groupLabel || item.group}</div> : null}\n {hasGroup && !menuOpen ? <div className={classnames('menu-group-split', style['menu-group-split'])} /> : null}\n <Flex\n className={classnames('menu-item', style['menu-item'], {\n ['is-active']: active,\n ['is-closed']: !menuOpen\n })}\n align=\"center\"\n gap={8}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('menu-item-icon', style['menu-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('menu-item-icon', style['menu-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('menu-item-icon', style['menu-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n {menuOpen && item.label}\n </Flex>\n </div>\n );\n };\n\n return (\n <div ref={listRef} className={classnames('menu', className, style['menu-list'])}>\n {listHeight > 0 ? (\n <VirtualList ref={virtualListRef} data={listData} height={listHeight} itemHeight={estimatedItemHeight} itemKey=\"key\" virtual={listData.length > 0}>\n {({ item, index }) => renderMenuItem(item, index)}\n </VirtualList>\n ) : null}\n </div>\n );\n};\n\nexport default Menu;\n","import { createContext, useContext as useReactContext } from 'react';\n\nconst context = createContext({});\n\nexport const useContext = () => {\n return useReactContext(context);\n};\n\nexport const { Provider, Consumer } = context;\n\nexport default context;\n","import { createPortal } from 'react-dom';\nimport { Flex } from 'antd';\nimport ensureSlash from '@kne/ensure-slash';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport Icon from '@kne/react-icon';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport { isValidElement, useRef, useLayoutEffect, useState, useEffect } from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile } from '@kne/responsive-utils';\nimport { useContext } from '../context';\n\nconst resolveTarget = target => {\n if (!target) {\n return null;\n }\n return typeof target === 'function' ? target() : target;\n};\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const isMobile = useIsMobile();\n const { scrollReady } = useContext();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n const toolbarMenu = items.filter(item => item.toolbar);\n const itemRefs = useRef([]);\n const firstRenderRef = useRef(true);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, scale: 1, visible: false });\n const [clicked, setClicked] = useState(false);\n const [scrolling, setScrolling] = useState(false);\n const scrollTimerRef = useRef(null);\n\n const activeIndex = toolbarMenu.findIndex(item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n });\n const displayIndex = activeIndex >= 0 ? activeIndex : 0;\n\n const listRef = useRef(null);\n const explicitTarget = resolveTarget(target);\n const useBoundaryMount = isMobile && mode === 'container' && !explicitTarget;\n const useViewportFixed = isMobile && mode !== 'container' && !explicitTarget;\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useLayoutEffect(() => {\n if (activeIndex < 0) {\n return;\n }\n const item = itemRefs.current[activeIndex];\n const list = listRef.current;\n if (!item || !list) {\n return;\n }\n\n const itemRect = item.getBoundingClientRect();\n const listRect = list.getBoundingClientRect();\n const newLeft = itemRect.left - listRect.left;\n const newWidth = itemRect.width;\n\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n setIndicator({ left: newLeft, width: newWidth, scale: 1, visible: true });\n return;\n }\n\n setIndicator(prev => ({ ...prev, scale: 1.15 }));\n\n const t1 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, left: newLeft, width: newWidth }));\n }, 120);\n\n const t2 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, scale: 1 }));\n }, 380);\n\n return () => {\n clearTimeout(t1);\n clearTimeout(t2);\n };\n }, [activeIndex, show, target, useBoundaryMount, useViewportFixed]);\n\n useEffect(() => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function') {\n return;\n }\n const handleScroll = () => {\n setScrolling(true);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n scrollTimerRef.current = setTimeout(() => {\n setScrolling(false);\n }, 500);\n };\n\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n };\n }, [getScrollElement, show, scrollReady]);\n\n if (!show) {\n return null;\n }\n\n const toolbarList = (\n <Flex\n ref={listRef}\n className={classnames('toolbar-list', style['toolbar-list'], {\n ['is-clicked']: clicked,\n ['is-scrolling']: scrolling,\n [style['is-boundary']]: useBoundaryMount,\n [style['is-viewport']]: useViewportFixed\n })}\n style={{\n '--toolbar-count': toolbarMenu.length || 1\n }}\n onAnimationEnd={() => {\n if (clicked) {\n setClicked(false);\n }\n }}\n >\n {indicator.visible && (\n <div\n className={classnames('toolbar-indicator', style['toolbar-indicator'])}\n style={{\n left: `${indicator.left}px`,\n width: `${indicator.width}px`,\n transform: `scale(${indicator.scale})`\n }}\n />\n )}\n {toolbarMenu.map((item, index) => {\n const active = index === activeIndex;\n const icon = typeof item.icon === 'function' ? item.icon({ active }) : item.icon;\n return (\n <Flex\n key={item.key || item.path || index}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n vertical\n flex={1}\n justify=\"center\"\n align=\"center\"\n className={classnames('toolbar-item', style['toolbar-item'], {\n ['is-active']: active,\n [style['is-hidden']]: scrolling && index !== displayIndex\n })}\n onClick={e => {\n if (active) {\n return;\n }\n setClicked(true);\n onChange && onChange(item, { base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('toolbar-item-icon', style['toolbar-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n <div className={classnames('toolbar-item-label', style['toolbar-item-label'])}>{item.label}</div>\n </Flex>\n );\n })}\n </Flex>\n );\n\n if (useBoundaryMount && boundaryTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(<div className={classnames('toolbar-boundary-overlay', style['toolbar-boundary-overlay'])}>{toolbarList}</div>, boundaryTarget)}</div>;\n }\n\n if (useViewportFixed) {\n return <div className={classnames('toolbar', style['toolbar'], style['toolbar-inline'], className)}>{toolbarList}</div>;\n }\n\n if (explicitTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(toolbarList, explicitTarget)}</div>;\n }\n\n return null;\n};\n\nexport default Toolbar;\n","const locale = {\n systemError: '系统出了点小问题,可刷新页面进行解决',\n refresh: '刷新'\n};\n\nexport default locale;\n","const locale = {\n systemError: 'The system encountered a minor issue, please refresh the page to resolve it',\n refresh: 'Refresh'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'system-layout'\n});\n\nexport default withLocale;\n","import React from 'react';\nimport { Alert, Button } from 'antd';\nimport ReactErrorBoundary from '@kne/react-error-boundary';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../withLocale';\n\nconst ErrorComponent = withLocale(() => {\n const { formatMessage } = useIntl();\n return (\n <Alert\n message={formatMessage({ id: 'systemError' })}\n showIcon\n type=\"error\"\n action={\n <Button size=\"small\" danger onClick={() => window.location.reload()}>\n {formatMessage({ id: 'refresh' })}\n </Button>\n }\n />\n );\n});\n\nconst ErrorBoundary = props => {\n return <ReactErrorBoundary {...props} errorComponent={ErrorComponent} />;\n};\n\nexport default ErrorBoundary;\n","import { useMemo, useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Flex, Row, Col } from 'antd';\nimport classnames from 'classnames';\nimport localStorage from '@kne/local-storage';\nimport { Image } from '@kne/react-file';\nimport UserCard from './UserCard';\nimport Menu from '../Menu';\nimport Toolbar from '../Toolbar';\nimport Icon from '@kne/react-icon';\nimport defaultLogo from './defaultLogo.svg';\nimport { ReactComponent as ExpandIcon } from './expand.svg';\nimport style from './style.module.scss';\nimport ErrorBoundary from '../ErrorComponent';\nimport SimpleBar from 'simplebar-react';\nimport { Provider } from '../context';\nimport { useLocation } from 'react-router-dom';\nimport useIsMobile from '../useIsMobile';\nimport { ResponsiveProvider, useResponsiveContext, findResponsiveScroll, findScrollParent, getDefaultScrollElement, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS } from '@kne/responsive-utils';\nimport 'simplebar-react/dist/simplebar.min.css';\n\nconst resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {\n if (deviceIsMobile && !openScrollbar) {\n const anchor = pageScrollRef.current;\n if (anchor) {\n // example 手机外框:滚动在 SimpleBar wrapper 上;class 可能晚于首帧挂上,\n // findScrollParent 不依赖 kne-responsive-scroll,避免 is-scrolled 监听绑错。\n const marked = findResponsiveScroll(anchor.parentElement || anchor);\n if (marked) {\n return marked;\n }\n const scrollParent = findScrollParent(anchor);\n if (scrollParent) {\n return scrollParent;\n }\n }\n return getDefaultScrollElement();\n }\n const anchor = pageScrollRef.current;\n if (anchor && typeof anchor.getScrollElement === 'function') {\n return anchor.getScrollElement();\n }\n if (anchor && anchor.nodeType === 1 && openScrollbar) {\n const wrapper = anchor.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return findResponsiveScroll(anchor) || getDefaultScrollElement();\n};\n\n// 始终覆盖本页 scroller(否则嵌套在 Global 下 sticky 会绑到 body)。\n// container 模式(example 手机外框)保留外层 boundary,toolbar/menu 才能 portal 到\n// .example-driver-device-scroll(非滚动内容区),absolute/fixed 相对手机视口生效。\nconst LayoutResponsiveScope = ({ boundaryRef, scrollRef, getScrollElement, children }) => {\n const parent = useResponsiveContext();\n const inheritBoundary = parent.mode === 'container';\n return (\n <ResponsiveProvider\n mode={parent.mode}\n containerWidth={parent.containerWidth}\n boundaryRef={boundaryRef}\n scrollRef={scrollRef}\n getScrollElement={getScrollElement}\n getBoundaryElement={\n inheritBoundary\n ? () => {\n const fromParent = typeof parent.getBoundaryElement === 'function' ? parent.getBoundaryElement() : null;\n return fromParent || null;\n }\n : undefined\n }\n >\n {children}\n </ResponsiveProvider>\n );\n};\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\n\nconst DRAG_THRESHOLD = 4;\n\nconst MobileAiEntry = ({ variant, onOpen }) => {\n const btnRef = useRef(null);\n const dragRef = useRef(null);\n const [pos, setPos] = useState(null);\n\n const handlePointerDown = event => {\n const node = btnRef.current;\n if (!node) {\n return;\n }\n // 与 toolbar 一致:boundary 模式下相对定位容器为 offsetParent,viewport 模式下相对视口\n const container = node.offsetParent;\n const rect = node.getBoundingClientRect();\n const refLeft = container ? container.getBoundingClientRect().left : 0;\n const refTop = container ? container.getBoundingClientRect().top : 0;\n dragRef.current = {\n startX: event.clientX,\n startY: event.clientY,\n originLeft: rect.left - refLeft,\n originTop: rect.top - refTop,\n refWidth: container ? container.clientWidth : window.innerWidth,\n refHeight: container ? container.clientHeight : window.innerHeight,\n size: node.offsetWidth,\n moved: false\n };\n node.setPointerCapture?.(event.pointerId);\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const dx = event.clientX - drag.startX;\n const dy = event.clientY - drag.startY;\n if (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD) {\n drag.moved = true;\n }\n const maxLeft = Math.max(8, drag.refWidth - drag.size - 8);\n const maxTop = Math.max(8, drag.refHeight - drag.size - 8);\n setPos({\n left: Math.min(Math.max(8, drag.originLeft + dx), maxLeft),\n top: Math.min(Math.max(8, drag.originTop + dy), maxTop)\n });\n };\n\n const handlePointerUp = event => {\n const drag = dragRef.current;\n dragRef.current = null;\n btnRef.current?.releasePointerCapture?.(event.pointerId);\n if (drag && !drag.moved) {\n onOpen();\n }\n };\n\n return (\n <div\n ref={btnRef}\n className={classnames('ai-entry-mobile', style['ai-entry-mobile'], {\n [style['is-viewport']]: variant === 'viewport',\n [style['is-boundary']]: variant !== 'viewport'\n })}\n style={pos ? { left: `${pos.left}px`, top: `${pos.top}px`, right: 'auto', bottom: 'auto' } : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n );\n};\n\nconst Layout = ({\n className,\n menu,\n background = 'linear-gradient(0deg, #BBCFE7 0%, #BBCFE7 100%), #FFFFFF',\n menuMaxWidth = '254px',\n menuMinWidth = '84px',\n logo,\n menuHeader,\n userInfo,\n aiDialog = null,\n openScrollbar: openScrollbarProps,\n isMobile: isMobileProps,\n toolbarTarget,\n children\n}) => {\n const localMenuOpen = localStorage.getItem(LayoutMenuOpenKey);\n const isMobile = useIsMobile();\n const responsiveContext = useResponsiveContext();\n const deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\n const useMenuPortal = deviceIsMobile && responsiveContext.mode === 'container';\n const [menuPortalTarget, setMenuPortalTarget] = useState(null);\n const [menuOpen, setMenuOpen] = useState(typeof localMenuOpen === 'boolean' && !deviceIsMobile ? localMenuOpen : !deviceIsMobile);\n const [toolbarShow, setToolbarShow] = useState(true);\n const [navbarShow, setNavbarShow] = useState(true);\n const [aiType, setAiType] = useState('closed');\n const [scrollReady, setScrollReady] = useState(0);\n const openScrollbar = typeof openScrollbarProps === 'boolean' ? openScrollbarProps : !deviceIsMobile && !window.__COMPONENTS_CORE_SIMPLE_BAR_DISABLED;\n const userAvatar = userInfo?.avatar;\n const contextValue = useMemo(() => {\n return {\n setToolbarShow,\n setNavbarShow,\n setMenuOpen,\n deviceIsMobile,\n scrollReady,\n logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar, scrollReady]);\n const topRef = useRef(null);\n const pageRef = useRef(null);\n const layoutBoundaryRef = useRef(null);\n const pageScrollRef = useRef(null);\n const location = useLocation();\n const getPageScrollElement = useCallback(() => {\n return resolvePageScrollElement(pageScrollRef, openScrollbar, deviceIsMobile);\n }, [openScrollbar, deviceIsMobile]);\n\n const handlePageScrollRef = useCallback(node => {\n pageScrollRef.current = node;\n if (node) {\n setScrollReady(version => version + 1);\n }\n }, []);\n\n useEffect(() => {\n if (!useMenuPortal) {\n setMenuPortalTarget(null);\n return;\n }\n const target = typeof responsiveContext.getBoundaryElement === 'function' ? responsiveContext.getBoundaryElement() : null;\n setMenuPortalTarget(target || null);\n }, [useMenuPortal, responsiveContext, scrollReady]);\n\n useEffect(() => {\n const scrollEl = getPageScrollElement();\n if (scrollEl && typeof scrollEl.scrollTo === 'function') {\n scrollEl.scrollTo(0, 0);\n return;\n }\n topRef.current?.scrollIntoView();\n }, [location, getPageScrollElement]);\n\n const userCard = <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />;\n\n const menuPortalVars = useMenuPortal\n ? {\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }\n : undefined;\n\n const layerMenuNode = deviceIsMobile ? (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n ) : null;\n\n const menuNode = (\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n >\n <div className={classnames('logo', style['logo'])}>\n <Image className={style['logo-img']} {...contextValue.logo} />\n </div>\n <div\n className={classnames('expand-btn-wrapper', style['expand-btn-wrapper'])}\n onClick={() => {\n setMenuOpen(menuOpen => {\n localStorage.setItem(LayoutMenuOpenKey, !menuOpen);\n return !menuOpen;\n });\n }}\n >\n <ExpandIcon\n className={classnames('expand-btn', style['expand-btn'], {\n 'is-closed': !menuOpen\n })}\n />\n </div>\n <div className={classnames('menu-inner', style['menu-inner'])}>\n <div className={classnames('menu-header', style['menu-header'])}>\n <ErrorBoundary>{menuHeader ? (typeof menuHeader === 'function' ? menuHeader({ menuOpen, userCard }) : menuHeader) : userCard}</ErrorBoundary>\n </div>\n <ErrorBoundary>\n <Menu\n className={classnames('menu-list', style['menu-list'])}\n menuOpen={menuOpen}\n {...menu}\n onChange={() => {\n deviceIsMobile && setMenuOpen(false);\n }}\n />\n </ErrorBoundary>\n {aiDialog && !deviceIsMobile && (\n <div\n className={classnames('ai-entry', style['ai-entry'])}\n onClick={() => {\n setAiType('small');\n }}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n )}\n </div>\n </div>\n );\n\n const portalMenu = useMenuPortal && menuPortalTarget;\n\n const aiDialogWindow =\n aiDialog && aiType === 'small' ? (\n <div\n className={classnames('ai-dialog-window', style['ai-dialog-window'], {\n 'is-mobile-full': deviceIsMobile,\n [style['is-mobile-full']]: deviceIsMobile,\n [style['is-viewport']]: deviceIsMobile && !portalMenu\n })}\n >\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n {!deviceIsMobile && (\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\n }}\n />\n )}\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('ai-dialog-window-content', style['ai-dialog-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n ) : null;\n\n const aiEntryMobile = deviceIsMobile && aiDialog && aiType === 'closed' ? <MobileAiEntry variant={portalMenu ? 'boundary' : 'viewport'} onOpen={() => setAiType('small')} /> : null;\n\n // portal 到 boundary(popup 挂载点)时,layout 上的 CSS 变量不会随 portal 继承,需要显式透传\n const aiPortalVars = {\n '--background': background,\n '--toolbar-height': deviceIsMobile && toolbarShow ? '72px' : '0px',\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n };\n\n const aiOverlayContent =\n aiDialogWindow || aiEntryMobile ? (\n <>\n {aiDialogWindow}\n {aiEntryMobile}\n </>\n ) : null;\n\n const aiOverlay = !aiOverlayContent\n ? null\n : portalMenu\n ? createPortal(\n <div className={classnames('ai-boundary-overlay', style['ai-boundary-overlay'])} style={aiPortalVars}>\n {aiOverlayContent}\n </div>,\n menuPortalTarget\n )\n : aiOverlayContent;\n\n return (\n <LayoutResponsiveScope boundaryRef={layoutBoundaryRef} scrollRef={pageScrollRef} getScrollElement={getPageScrollElement}>\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n ref={layoutBoundaryRef}\n className={classnames(className, 'layout', style['layout'], RESPONSIVE_BOUNDARY_CLASS, {\n 'is-mobile': deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n 'has-toolbar': deviceIsMobile && toolbarShow,\n [style['has-toolbar']]: deviceIsMobile && toolbarShow,\n 'has-navbar': deviceIsMobile && navbarShow,\n [style['has-navbar']]: deviceIsMobile && navbarShow\n })}\n style={{\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }}\n >\n {!portalMenu && layerMenuNode}\n <Flex style={{ flex: 1, minHeight: 0, width: '100%', height: 0 }}>\n {!portalMenu && menuNode}\n {portalMenu &&\n createPortal(\n <div className={classnames(style['menu-boundary-overlay'])} style={menuPortalVars}>\n {layerMenuNode}\n {menuNode}\n </div>,\n menuPortalTarget\n )}\n <Flex flex={1} ref={pageRef} className={classnames('page', style['page'])}>\n <Row className={classnames('page-content', style['page-content'])}>\n {!deviceIsMobile && aiDialog && aiType === 'inner' && (\n <Col span={8} className={classnames('page-dialog-outer', style['page-dialog-outer'])}>\n <div className={classnames('page-dialog', style['page-dialog'])}>\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('page-window-content', style['page-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n </Col>\n )}\n <Col span={!deviceIsMobile && aiDialog && aiType === 'inner' ? 16 : 24} className={RESPONSIVE_CONTAINER_CLASS}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], !deviceIsMobile && 'is-scroller', !deviceIsMobile && style['is-scroller'], !deviceIsMobile && RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n </Flex>\n {aiOverlay}\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={toolbarTarget} />\n </div>\n </Provider>\n </LayoutResponsiveScope>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useRef, useState } from 'react';\nimport Icon from '@kne/react-icon';\nimport ButtonGroup from '@kne/button-group';\nimport classnames from 'classnames';\nimport { useNavigate } from 'react-router-dom';\nimport { useScrollElement, usePopupContainer, useResponsiveContext } from '@kne/responsive-utils';\nimport { useContext } from '../context';\nimport style from './style.module.scss';\nimport { Image } from '@kne/react-file';\n\nconst PageLoading = () => {\n return (\n <Flex flex={1} justify=\"center\">\n <div className={style['page-loading']}>\n <Skeleton active />\n </div>\n </Flex>\n );\n};\n\nconst Page = ({ title, extra = null, back, buttonProps, children, toolbar = true, navbar = true, noPadding }) => {\n const { setToolbarShow, setNavbarShow, setMenuOpen, deviceIsMobile, userAvatar, scrollReady } = useContext();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const navbarRef = useRef(null);\n const [isScrolled, setIsScrolled] = useState(false);\n const useBoundaryMount = deviceIsMobile && mode === 'container';\n const useViewportFixed = deviceIsMobile && mode !== 'container';\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n useEffect(() => {\n if (!deviceIsMobile || !navbar) {\n return;\n }\n let boundEl = null;\n let remove = null;\n\n const bind = () => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function' || scrollEl === boundEl) {\n return;\n }\n if (typeof remove === 'function') {\n remove();\n }\n boundEl = scrollEl;\n const handleScroll = () => {\n const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;\n setIsScrolled(scrollEl.scrollTop > threshold);\n };\n handleScroll();\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n remove = () => scrollEl.removeEventListener('scroll', handleScroll);\n };\n\n bind();\n // SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定\n const raf = requestAnimationFrame(bind);\n return () => {\n cancelAnimationFrame(raf);\n if (typeof remove === 'function') {\n remove();\n }\n };\n }, [deviceIsMobile, navbar, getScrollElement, scrollReady]);\n\n const titleExtraContent = (() => {\n if (extra) {\n if (deviceIsMobile && userAvatar) {\n return (\n <Flex gap={4} align=\"center\">\n {extra}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n );\n }\n return extra;\n }\n if (deviceIsMobile && (buttonProps || userAvatar)) {\n const actions = buttonProps ? (\n <div className={classnames('page-title-actions', style['page-title-actions'])}>\n <ButtonGroup {...Object.assign({}, buttonProps, { showLength: 0, moreType: 'link' })} />\n </div>\n ) : null;\n const avatar = userAvatar ? <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" /> : null;\n // 仅更多按钮时不要套带 gap 的 Flex,否则 ButtonGroup 测宽空节点也会吃 gap,导致不居中\n if (actions && avatar) {\n return (\n <Flex gap={4} align=\"center\">\n {actions}\n {avatar}\n </Flex>\n );\n }\n return actions || avatar;\n }\n if (buttonProps) {\n return <ButtonGroup {...buttonProps} />;\n }\n return null;\n })();\n\n const navbarInner = navbar ? (\n <Flex\n ref={navbarRef}\n justify=\"space-between\"\n align=\"center\"\n gap={20}\n className={classnames('page-header', style['page-header'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n ['is-scrolled']: isScrolled,\n [style['is-scrolled']]: isScrolled,\n [style['is-boundary']]: useBoundaryMount && !!boundaryTarget,\n [style['is-viewport']]: useViewportFixed || (useBoundaryMount && !boundaryTarget)\n })}\n >\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typearrow_forward_ios\" fontClassName=\"system\" />}\n onClick={() => {\n navigate(-1);\n }}\n />\n )}\n {!back && deviceIsMobile && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typeequal\" fontClassName=\"system\" />}\n onClick={() => {\n setMenuOpen(open => !open);\n }}\n />\n )}\n <div className={classnames('page-title', style['page-title'])}>{title}</div>\n </Flex>\n {titleExtraContent ? <div className={classnames('page-title-extra', style['page-title-extra'], style['has-float'])}>{titleExtraContent}</div> : null}\n </Flex>\n ) : null;\n\n const navbarEl =\n navbarInner && useBoundaryMount && boundaryTarget\n ? createPortal(\n <div\n className={classnames('page-header-boundary-overlay', style['page-header-boundary-overlay'])}\n style={{\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n }}\n >\n {navbarInner}\n </div>,\n boundaryTarget\n )\n : navbarInner;\n\n const pageInnerClassNameOrigin = classnames('page-inner', style['page-inner']);\n const pageInnerClassName = classnames(pageInnerClassNameOrigin, {\n ['no-padding']: noPadding,\n [style['no-padding']]: noPadding\n });\n\n const render = ({ children, className }) => {\n return (\n <>\n <div className={style['page-top']} />\n <Flex vertical flex={1}>\n {navbarEl}\n <Flex vertical flex={1} className={classnames(pageInnerClassNameOrigin, className)}>\n {children}\n </Flex>\n </Flex>\n <div className={style['page-bottom']} />\n </>\n );\n };\n\n return (\n <Flex\n vertical\n flex={1}\n className={classnames('page', style['page'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile\n })}\n >\n {typeof children === 'function'\n ? children({\n navbar: navbarEl,\n className: pageInnerClassName,\n render,\n pageLoading: render({\n children: <PageLoading />\n })\n })\n : render({ children })}\n </Flex>\n );\n};\n\nPage.PageLoading = PageLoading;\n\nexport default Page;\n","import { IS_MOBILE_QUERY, MOBILE_BREAKPOINT } from '@kne/responsive-utils';\n\nconst isMobile = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(IS_MOBILE_QUERY).matches;\n};\n\nexport default isMobile;\nexport { MOBILE_BREAKPOINT };\n","import merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker', 'Tabs'];\n\nconst themeToken = {\n components: merge(\n {},\n transform(\n transparentBgContainerComponents,\n (result, component) => {\n result[component] = transparentBgContainer;\n },\n {}\n )\n )\n};\n\nexport default themeToken;\n","export { default } from './Layout';\nexport { default as Layout } from './Layout';\nexport { default as Page } from './Page';\nexport { default as isMobile, MOBILE_BREAKPOINT } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\n\nexport {\n MOBILE_BREAKPOINT as mobileBreakpoint,\n ResponsiveProvider,\n useBreakpoint,\n useMediaQuery,\n usePopupContainer,\n useScrollElement,\n useResponsiveContext,\n RESPONSIVE_CONTAINER_CLASS,\n RESPONSIVE_BOUNDARY_CLASS,\n RESPONSIVE_SCROLL_CLASS\n} from '@kne/responsive-utils';\n\nimport('./icons/index');\n"],"names":["UserCard","name","avatar","email","phone","description","menuOpen","extra","_jsx","Image","Avatar","id","src","shape","size","alt","_jsxs","Flex","gap","justify","children","vertical","className","classnames","style","MENU_ITEM_HEIGHT","MENU_GROUP_HEIGHT","MENU_GROUP_SPLIT_HEIGHT","getItemKey","item","index","key","path","Menu","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","listRef","useRef","virtualListRef","listHeight","setListHeight","useState","currentPathname","pathname","replace","RegExp","isItemActive","useCallback","ensureSlash","getEstimatedItemHeight","_items","hasGroup","group","estimatedItemHeight","useMemo","length","total","reduce","sum","Math","max","ceil","listData","map","activeIndex","findIndex","useLayoutEffect","el","current","updateHeight","styles","getComputedStyle","paddingY","parseFloat","paddingTop","paddingBottom","clientHeight","observer","ResizeObserver","observe","disconnect","_virtualListRef$curre","scrollTo","align","renderMenuItem","_items2","active","icon","title","label","onClick","e","event","groupLabel","Icon","type","fontClassName","isValidElement","isPlainObject","_extends","ref","VirtualList","data","height","itemHeight","itemKey","virtual","context","createContext","useContext","useReactContext","Provider","Consumer","resolveTarget","target","Toolbar","show","getScrollElement","useScrollElement","getBoundaryElement","usePopupContainer","mode","useResponsiveContext","isMobile","useIsMobile","scrollReady","toolbarMenu","filter","toolbar","itemRefs","firstRenderRef","indicator","setIndicator","left","width","scale","visible","clicked","setClicked","scrolling","setScrolling","scrollTimerRef","displayIndex","explicitTarget","useBoundaryMount","useViewportFixed","boundaryTarget","list","itemRect","getBoundingClientRect","listRect","newLeft","newWidth","prev","t1","setTimeout","t2","clearTimeout","useEffect","scrollEl","addEventListener","handleScroll","passive","removeEventListener","toolbarList","onAnimationEnd","transform","flex","createPortal","locale","systemError","refresh","withLocale","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","ErrorComponent","formatMessage","useIntl","Alert","message","showIcon","action","Button","danger","window","reload","ErrorBoundary","props","ReactErrorBoundary","errorComponent","resolvePageScrollElement","pageScrollRef","openScrollbar","deviceIsMobile","anchor","marked","findResponsiveScroll","parentElement","scrollParent","findScrollParent","getDefaultScrollElement","nodeType","wrapper","querySelector","LayoutResponsiveScope","boundaryRef","scrollRef","parent","inheritBoundary","ResponsiveProvider","containerWidth","fromParent","undefined","LayoutMenuOpenKey","DRAG_THRESHOLD","MobileAiEntry","variant","onOpen","btnRef","dragRef","pos","setPos","handlePointerDown","node","container","offsetParent","rect","refLeft","refTop","top","startX","clientX","startY","clientY","originLeft","originTop","refWidth","clientWidth","innerWidth","refHeight","innerHeight","offsetWidth","moved","setPointerCapture","pointerId","handlePointerMove","drag","dx","dy","abs","maxLeft","maxTop","min","handlePointerUp","_btnRef$current","releasePointerCapture","right","bottom","onPointerDown","onPointerMove","onPointerUp","colorful","Layout","menu","background","menuMaxWidth","menuMinWidth","logo","menuHeader","userInfo","aiDialog","openScrollbarProps","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","responsiveContext","useMenuPortal","menuPortalTarget","setMenuPortalTarget","setMenuOpen","toolbarShow","setToolbarShow","navbarShow","setNavbarShow","aiType","setAiType","setScrollReady","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","Object","assign","defaultLogo","topRef","pageRef","layoutBoundaryRef","getPageScrollElement","handlePageScrollRef","version","_topRef$current","scrollIntoView","userCard","menuPortalVars","layerMenuNode","menuNode","setItem","ExpandIcon","portalMenu","aiDialogWindow","content","aiEntryMobile","aiPortalVars","aiOverlayContent","_Fragment","aiOverlay","value","RESPONSIVE_BOUNDARY_CLASS","minHeight","Row","Col","span","RESPONSIVE_CONTAINER_CLASS","SimpleBar","RESPONSIVE_SCROLL_CLASS","PageLoading","Skeleton","Page","back","buttonProps","navbar","noPadding","navbarRef","isScrolled","setIsScrolled","boundEl","remove","bind","threshold","offsetHeight","scrollTop","raf","requestAnimationFrame","cancelAnimationFrame","titleExtraContent","actions","ButtonGroup","showLength","moreType","navbarInner","open","navbarEl","pageInnerClassNameOrigin","pageInnerClassName","render","pageLoading","matchMedia","IS_MOBILE_QUERY","matches","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","result","component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/context.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/Layout/index.js","../src/Page/index.js","../src/isMobile.js","../src/themeToken.js","../src/index.js"],"sourcesContent":["import { Image } from '@kne/react-file';\nimport { Flex } from 'antd';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst UserCard = ({ name, avatar, email, phone, description, menuOpen, extra }) => {\n if (!menuOpen) {\n return <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />;\n }\n return (\n <Flex gap={12} justify=\"center\">\n <Image.Avatar id={avatar} src={avatar} shape=\"circle\" size={40} alt=\"avatar\" />\n <Flex vertical>\n <div className={classnames('username', style['username'])}>{name || '-'}</div>\n <div className={classnames('user-description', style['user-description'])}>{email || phone || description || '-'}</div>\n {extra}\n </Flex>\n </Flex>\n );\n};\n\nexport default UserCard;\n","import { Flex } from 'antd';\nimport { isValidElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport classnames from 'classnames';\nimport Icon from '@kne/react-icon';\nimport ensureSlash from '@kne/ensure-slash';\nimport isPlainObject from 'lodash/isPlainObject';\nimport VirtualList from 'rc-virtual-list';\nimport style from './style.module.scss';\n\nconst MENU_ITEM_HEIGHT = 52;\nconst MENU_GROUP_HEIGHT = 48;\nconst MENU_GROUP_SPLIT_HEIGHT = 17;\n\nconst getItemKey = (item, index) => item.key || item.path || index;\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const listRef = useRef(null);\n const virtualListRef = useRef(null);\n const [listHeight, setListHeight] = useState(0);\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n\n const isItemActive = useCallback(\n item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { menuOpen, base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n },\n [activeKey, base, currentPathname, menuOpen]\n );\n\n const getEstimatedItemHeight = useCallback(\n (item, index) => {\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n if (!hasGroup) {\n return MENU_ITEM_HEIGHT;\n }\n return MENU_ITEM_HEIGHT + (menuOpen ? MENU_GROUP_HEIGHT : MENU_GROUP_SPLIT_HEIGHT);\n },\n [items, menuOpen]\n );\n\n const estimatedItemHeight = useMemo(() => {\n if (!items.length) {\n return MENU_ITEM_HEIGHT;\n }\n const total = items.reduce((sum, item, index) => sum + getEstimatedItemHeight(item, index), 0);\n return Math.max(MENU_ITEM_HEIGHT, Math.ceil(total / items.length));\n }, [getEstimatedItemHeight, items]);\n\n const listData = useMemo(\n () =>\n items.map((item, index) => ({\n item,\n index,\n key: getItemKey(item, index)\n })),\n [items]\n );\n\n const activeIndex = useMemo(() => listData.findIndex(({ item }) => isItemActive(item)), [isItemActive, listData]);\n\n useLayoutEffect(() => {\n const el = listRef.current;\n if (!el) {\n return;\n }\n const updateHeight = () => {\n const styles = getComputedStyle(el);\n const paddingY = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom);\n setListHeight(el.clientHeight - paddingY);\n };\n updateHeight();\n const observer = new ResizeObserver(updateHeight);\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (activeIndex < 0 || listHeight <= 0) {\n return;\n }\n virtualListRef.current?.scrollTo({\n index: activeIndex,\n align: 'auto'\n });\n }, [activeIndex, listHeight, menuOpen, listData.length]);\n\n const renderMenuItem = (item, index) => {\n const active = isItemActive(item);\n const icon = typeof item.icon === 'function' ? item.icon({ menuOpen, active }) : item.icon;\n const hasGroup = item.group && item.group !== items[index - 1]?.group;\n\n return (\n <div\n key={getItemKey(item, index)}\n title={item.label}\n onClick={e => {\n if (active) {\n return;\n }\n onChange && onChange(item, { menuOpen, base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { menuOpen, base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {hasGroup && menuOpen ? <div className={classnames('menu-group', style['menu-group'])}>{item.groupLabel || item.group}</div> : null}\n {hasGroup && !menuOpen ? <div className={classnames('menu-group-split', style['menu-group-split'])} /> : null}\n <Flex\n className={classnames('menu-item', style['menu-item'], {\n ['is-active']: active,\n ['is-closed']: !menuOpen\n })}\n align=\"center\"\n gap={8}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('menu-item-icon', style['menu-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('menu-item-icon', style['menu-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('menu-item-icon', style['menu-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n {menuOpen && item.label}\n </Flex>\n </div>\n );\n };\n\n return (\n <div ref={listRef} className={classnames('menu', className, style['menu-list'])}>\n {listHeight > 0 ? (\n <VirtualList ref={virtualListRef} data={listData} height={listHeight} itemHeight={estimatedItemHeight} itemKey=\"key\" virtual={listData.length > 0}>\n {({ item, index }) => renderMenuItem(item, index)}\n </VirtualList>\n ) : null}\n </div>\n );\n};\n\nexport default Menu;\n","import { createContext, useContext as useReactContext } from 'react';\n\nconst context = createContext({});\n\nexport const useContext = () => {\n return useReactContext(context);\n};\n\nexport const { Provider, Consumer } = context;\n\nexport default context;\n","import { createPortal } from 'react-dom';\nimport { Flex } from 'antd';\nimport ensureSlash from '@kne/ensure-slash';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport Icon from '@kne/react-icon';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport { isValidElement, useRef, useLayoutEffect, useState, useEffect } from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { useScrollElement, usePopupContainer, useResponsiveContext, useIsMobile } from '@kne/responsive-utils';\nimport { useContext } from '../context';\n\nconst resolveTarget = target => {\n if (!target) {\n return null;\n }\n return typeof target === 'function' ? target() : target;\n};\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const isMobile = useIsMobile();\n const { scrollReady } = useContext();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n const toolbarMenu = items.filter(item => item.toolbar);\n const itemRefs = useRef([]);\n const firstRenderRef = useRef(true);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, scale: 1, visible: false });\n const [clicked, setClicked] = useState(false);\n const [scrolling, setScrolling] = useState(false);\n const scrollTimerRef = useRef(null);\n\n const activeIndex = toolbarMenu.findIndex(item => {\n if (typeof activeKey === 'string') {\n return activeKey === item.key;\n }\n if (typeof activeKey === 'function') {\n return activeKey(item, { base });\n }\n if (typeof item.path === 'string') {\n return ensureSlash(currentPathname) === ensureSlash(item.path);\n }\n return false;\n });\n const displayIndex = activeIndex >= 0 ? activeIndex : 0;\n\n const listRef = useRef(null);\n const explicitTarget = resolveTarget(target);\n const useBoundaryMount = isMobile && mode === 'container' && !explicitTarget;\n const useViewportFixed = isMobile && mode !== 'container' && !explicitTarget;\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useLayoutEffect(() => {\n if (activeIndex < 0) {\n return;\n }\n const item = itemRefs.current[activeIndex];\n const list = listRef.current;\n if (!item || !list) {\n return;\n }\n\n const itemRect = item.getBoundingClientRect();\n const listRect = list.getBoundingClientRect();\n const newLeft = itemRect.left - listRect.left;\n const newWidth = itemRect.width;\n\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n setIndicator({ left: newLeft, width: newWidth, scale: 1, visible: true });\n return;\n }\n\n setIndicator(prev => ({ ...prev, scale: 1.15 }));\n\n const t1 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, left: newLeft, width: newWidth }));\n }, 120);\n\n const t2 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, scale: 1 }));\n }, 380);\n\n return () => {\n clearTimeout(t1);\n clearTimeout(t2);\n };\n }, [activeIndex, show, target, useBoundaryMount, useViewportFixed]);\n\n useEffect(() => {\n const scrollEl = getScrollElement();\n if (!scrollEl || typeof scrollEl.addEventListener !== 'function') {\n return;\n }\n const handleScroll = () => {\n setScrolling(true);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n scrollTimerRef.current = setTimeout(() => {\n setScrolling(false);\n }, 500);\n };\n\n scrollEl.addEventListener('scroll', handleScroll, { passive: true });\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll);\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n };\n }, [getScrollElement, show, scrollReady]);\n\n if (!show) {\n return null;\n }\n\n const toolbarList = (\n <Flex\n ref={listRef}\n className={classnames('toolbar-list', style['toolbar-list'], {\n ['is-clicked']: clicked,\n ['is-scrolling']: scrolling,\n [style['is-boundary']]: useBoundaryMount,\n [style['is-viewport']]: useViewportFixed\n })}\n style={{\n '--toolbar-count': toolbarMenu.length || 1\n }}\n onAnimationEnd={() => {\n if (clicked) {\n setClicked(false);\n }\n }}\n >\n {indicator.visible && (\n <div\n className={classnames('toolbar-indicator', style['toolbar-indicator'])}\n style={{\n left: `${indicator.left}px`,\n width: `${indicator.width}px`,\n transform: `scale(${indicator.scale})`\n }}\n />\n )}\n {toolbarMenu.map((item, index) => {\n const active = index === activeIndex;\n const icon = typeof item.icon === 'function' ? item.icon({ active }) : item.icon;\n return (\n <Flex\n key={item.key || item.path || index}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n vertical\n flex={1}\n justify=\"center\"\n align=\"center\"\n className={classnames('toolbar-item', style['toolbar-item'], {\n ['is-active']: active,\n [style['is-hidden']]: scrolling && index !== displayIndex\n })}\n onClick={e => {\n if (active) {\n return;\n }\n setClicked(true);\n onChange && onChange(item, { base });\n if (typeof item.onClick === 'function') {\n item.onClick(item, { base, event: e });\n return;\n }\n if (item.path) {\n navigate(ensureSlash(`${base}${item.path}`));\n }\n }}\n >\n {(icon => {\n if (typeof icon === 'string') {\n return <Icon className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} type={icon} fontClassName=\"system\" />;\n }\n\n if (isValidElement(icon)) {\n return <span className={classnames('toolbar-item-icon', style['toolbar-item-icon'])}>{icon}</span>;\n }\n\n if (isPlainObject(icon) && typeof icon.type === 'string') {\n return <Icon {...icon} className={classnames('toolbar-item-icon', style['toolbar-item-icon'])} />;\n }\n\n return null;\n })(icon)}\n <div className={classnames('toolbar-item-label', style['toolbar-item-label'])}>{item.label}</div>\n </Flex>\n );\n })}\n </Flex>\n );\n\n if (useBoundaryMount && boundaryTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(<div className={classnames('toolbar-boundary-overlay', style['toolbar-boundary-overlay'])}>{toolbarList}</div>, boundaryTarget)}</div>;\n }\n\n if (useViewportFixed) {\n return <div className={classnames('toolbar', style['toolbar'], style['toolbar-inline'], className)}>{toolbarList}</div>;\n }\n\n if (explicitTarget) {\n return <div className={classnames('toolbar', style['toolbar'], className)}>{createPortal(toolbarList, explicitTarget)}</div>;\n }\n\n return null;\n};\n\nexport default Toolbar;\n","const locale = {\n systemError: '系统出了点小问题,可刷新页面进行解决',\n refresh: '刷新'\n};\n\nexport default locale;\n","const locale = {\n systemError: 'The system encountered a minor issue, please refresh the page to resolve it',\n refresh: 'Refresh'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCn from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCn,\n 'en-US': enUS\n },\n namespace: 'system-layout'\n});\n\nexport default withLocale;\n","import React from 'react';\nimport { Alert, Button } from 'antd';\nimport ReactErrorBoundary from '@kne/react-error-boundary';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../withLocale';\n\nconst ErrorComponent = withLocale(() => {\n const { formatMessage } = useIntl();\n return (\n <Alert\n message={formatMessage({ id: 'systemError' })}\n showIcon\n type=\"error\"\n action={\n <Button size=\"small\" danger onClick={() => window.location.reload()}>\n {formatMessage({ id: 'refresh' })}\n </Button>\n }\n />\n );\n});\n\nconst ErrorBoundary = props => {\n return <ReactErrorBoundary {...props} errorComponent={ErrorComponent} />;\n};\n\nexport default ErrorBoundary;\n","import { useMemo, useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Flex, Row, Col } from 'antd';\nimport classnames from 'classnames';\nimport localStorage from '@kne/local-storage';\nimport { Image } from '@kne/react-file';\nimport UserCard from './UserCard';\nimport Menu from '../Menu';\nimport Toolbar from '../Toolbar';\nimport Icon from '@kne/react-icon';\nimport defaultLogo from './defaultLogo.svg';\nimport { ReactComponent as ExpandIcon } from './expand.svg';\nimport style from './style.module.scss';\nimport ErrorBoundary from '../ErrorComponent';\nimport SimpleBar from 'simplebar-react';\nimport { Provider } from '../context';\nimport { useLocation } from 'react-router-dom';\nimport useIsMobile from '../useIsMobile';\nimport { ResponsiveProvider, useResponsiveContext, findResponsiveScroll, findScrollParent, getDefaultScrollElement, RESPONSIVE_BOUNDARY_CLASS, RESPONSIVE_CONTAINER_CLASS, RESPONSIVE_SCROLL_CLASS } from '@kne/responsive-utils';\nimport 'simplebar-react/dist/simplebar.min.css';\n\nconst normalizeMarkedScrollElement = marked => {\n if (!marked) {\n return null;\n }\n if (typeof marked.getScrollElement === 'function') {\n const fromApi = marked.getScrollElement();\n if (fromApi) {\n return fromApi;\n }\n }\n if (marked.nodeType === 1) {\n const wrapper = marked.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return marked;\n};\n\nconst resolveDocumentScrollElement = () => {\n if (typeof document === 'undefined') {\n return null;\n }\n // 真实移动端滚 document,不要走 getDefaultScrollElement:\n // 它会 document.querySelector(.kne-responsive-scroll),容易绑到宿主页无关节点。\n return document.scrollingElement || document.documentElement || document.body || null;\n};\n\nconst resolvePageScrollElement = (pageScrollRef, openScrollbar, deviceIsMobile) => {\n if (deviceIsMobile && !openScrollbar) {\n const anchor = pageScrollRef.current;\n if (anchor) {\n // 优先真实可滚祖先(example 手机外框 SimpleBar content-wrapper)\n const scrollParent = findScrollParent(anchor);\n if (scrollParent) {\n return scrollParent;\n }\n // class 标记的外层可能不是滚动节点,需归一到 content-wrapper\n const marked = normalizeMarkedScrollElement(findResponsiveScroll(anchor.parentElement || anchor));\n if (marked) {\n return marked;\n }\n }\n return resolveDocumentScrollElement();\n }\n const anchor = pageScrollRef.current;\n if (anchor && typeof anchor.getScrollElement === 'function') {\n return anchor.getScrollElement();\n }\n if (anchor && anchor.nodeType === 1 && openScrollbar) {\n const wrapper = anchor.querySelector('.simplebar-content-wrapper');\n if (wrapper) {\n return wrapper;\n }\n }\n return findResponsiveScroll(anchor) || getDefaultScrollElement();\n};\n\n// 始终覆盖本页 scroller(否则嵌套在 Global 下 sticky 会绑到 body)。\n// container 模式(example 手机外框)保留外层 boundary,toolbar/menu 才能 portal 到\n// .example-driver-device-scroll(非滚动内容区),absolute/fixed 相对手机视口生效。\nconst LayoutResponsiveScope = ({ boundaryRef, scrollRef, getScrollElement, children }) => {\n const parent = useResponsiveContext();\n const inheritBoundary = parent.mode === 'container';\n return (\n <ResponsiveProvider\n mode={parent.mode}\n containerWidth={parent.containerWidth}\n boundaryRef={boundaryRef}\n scrollRef={scrollRef}\n getScrollElement={getScrollElement}\n getBoundaryElement={\n inheritBoundary\n ? () => {\n const fromParent = typeof parent.getBoundaryElement === 'function' ? parent.getBoundaryElement() : null;\n return fromParent || null;\n }\n : undefined\n }\n >\n {children}\n </ResponsiveProvider>\n );\n};\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\n\nconst DRAG_THRESHOLD = 4;\n\nconst MobileAiEntry = ({ variant, onOpen }) => {\n const btnRef = useRef(null);\n const dragRef = useRef(null);\n const [pos, setPos] = useState(null);\n\n const handlePointerDown = event => {\n const node = btnRef.current;\n if (!node) {\n return;\n }\n // 与 toolbar 一致:boundary 模式下相对定位容器为 offsetParent,viewport 模式下相对视口\n const container = node.offsetParent;\n const rect = node.getBoundingClientRect();\n const refLeft = container ? container.getBoundingClientRect().left : 0;\n const refTop = container ? container.getBoundingClientRect().top : 0;\n dragRef.current = {\n startX: event.clientX,\n startY: event.clientY,\n originLeft: rect.left - refLeft,\n originTop: rect.top - refTop,\n refWidth: container ? container.clientWidth : window.innerWidth,\n refHeight: container ? container.clientHeight : window.innerHeight,\n size: node.offsetWidth,\n moved: false\n };\n node.setPointerCapture?.(event.pointerId);\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const dx = event.clientX - drag.startX;\n const dy = event.clientY - drag.startY;\n if (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD) {\n drag.moved = true;\n }\n const maxLeft = Math.max(8, drag.refWidth - drag.size - 8);\n const maxTop = Math.max(8, drag.refHeight - drag.size - 8);\n setPos({\n left: Math.min(Math.max(8, drag.originLeft + dx), maxLeft),\n top: Math.min(Math.max(8, drag.originTop + dy), maxTop)\n });\n };\n\n const handlePointerUp = event => {\n const drag = dragRef.current;\n dragRef.current = null;\n btnRef.current?.releasePointerCapture?.(event.pointerId);\n if (drag && !drag.moved) {\n onOpen();\n }\n };\n\n return (\n <div\n ref={btnRef}\n className={classnames('ai-entry-mobile', style['ai-entry-mobile'], {\n [style['is-viewport']]: variant === 'viewport',\n [style['is-boundary']]: variant !== 'viewport'\n })}\n style={pos ? { left: `${pos.left}px`, top: `${pos.top}px`, right: 'auto', bottom: 'auto' } : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n );\n};\n\nconst Layout = ({\n className,\n menu,\n background = 'linear-gradient(0deg, #BBCFE7 0%, #BBCFE7 100%), #FFFFFF',\n menuMaxWidth = '254px',\n menuMinWidth = '84px',\n logo,\n menuHeader,\n userInfo,\n aiDialog = null,\n openScrollbar: openScrollbarProps,\n isMobile: isMobileProps,\n toolbarTarget,\n children\n}) => {\n const localMenuOpen = localStorage.getItem(LayoutMenuOpenKey);\n const isMobile = useIsMobile();\n const responsiveContext = useResponsiveContext();\n const deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\n const useMenuPortal = deviceIsMobile && responsiveContext.mode === 'container';\n const [menuPortalTarget, setMenuPortalTarget] = useState(null);\n const [menuOpen, setMenuOpen] = useState(typeof localMenuOpen === 'boolean' && !deviceIsMobile ? localMenuOpen : !deviceIsMobile);\n const [toolbarShow, setToolbarShow] = useState(true);\n const [navbarShow, setNavbarShow] = useState(true);\n const [aiType, setAiType] = useState('closed');\n const [scrollReady, setScrollReady] = useState(0);\n const openScrollbar = typeof openScrollbarProps === 'boolean' ? openScrollbarProps : !deviceIsMobile && !window.__COMPONENTS_CORE_SIMPLE_BAR_DISABLED;\n const userAvatar = userInfo?.avatar;\n const contextValue = useMemo(() => {\n return {\n setToolbarShow,\n setNavbarShow,\n setMenuOpen,\n deviceIsMobile,\n scrollReady,\n logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar, scrollReady]);\n const topRef = useRef(null);\n const pageRef = useRef(null);\n const layoutBoundaryRef = useRef(null);\n const pageScrollRef = useRef(null);\n const location = useLocation();\n const getPageScrollElement = useCallback(() => {\n return resolvePageScrollElement(pageScrollRef, openScrollbar, deviceIsMobile);\n }, [openScrollbar, deviceIsMobile]);\n\n const handlePageScrollRef = useCallback(node => {\n pageScrollRef.current = node;\n if (node) {\n setScrollReady(version => version + 1);\n }\n }, []);\n\n useEffect(() => {\n if (!useMenuPortal) {\n setMenuPortalTarget(null);\n return;\n }\n const target = typeof responsiveContext.getBoundaryElement === 'function' ? responsiveContext.getBoundaryElement() : null;\n setMenuPortalTarget(target || null);\n }, [useMenuPortal, responsiveContext, scrollReady]);\n\n useEffect(() => {\n const scrollEl = getPageScrollElement();\n if (scrollEl && typeof scrollEl.scrollTo === 'function') {\n scrollEl.scrollTo(0, 0);\n return;\n }\n topRef.current?.scrollIntoView();\n }, [location, getPageScrollElement]);\n\n const userCard = <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />;\n\n const menuPortalVars = useMenuPortal\n ? {\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }\n : undefined;\n\n const layerMenuNode = deviceIsMobile ? (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n ) : null;\n\n const menuNode = (\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen,\n [style['is-portaled']]: useMenuPortal\n })}\n style={menuPortalVars}\n >\n <div className={classnames('logo', style['logo'])}>\n <Image className={style['logo-img']} {...contextValue.logo} />\n </div>\n <div\n className={classnames('expand-btn-wrapper', style['expand-btn-wrapper'])}\n onClick={() => {\n setMenuOpen(menuOpen => {\n localStorage.setItem(LayoutMenuOpenKey, !menuOpen);\n return !menuOpen;\n });\n }}\n >\n <ExpandIcon\n className={classnames('expand-btn', style['expand-btn'], {\n 'is-closed': !menuOpen\n })}\n />\n </div>\n <div className={classnames('menu-inner', style['menu-inner'])}>\n <div className={classnames('menu-header', style['menu-header'])}>\n <ErrorBoundary>{menuHeader ? (typeof menuHeader === 'function' ? menuHeader({ menuOpen, userCard }) : menuHeader) : userCard}</ErrorBoundary>\n </div>\n <ErrorBoundary>\n <Menu\n className={classnames('menu-list', style['menu-list'])}\n menuOpen={menuOpen}\n {...menu}\n onChange={() => {\n deviceIsMobile && setMenuOpen(false);\n }}\n />\n </ErrorBoundary>\n {aiDialog && !deviceIsMobile && (\n <div\n className={classnames('ai-entry', style['ai-entry'])}\n onClick={() => {\n setAiType('small');\n }}\n >\n <Icon type=\"system-prompt\" colorful />\n </div>\n )}\n </div>\n </div>\n );\n\n const portalMenu = useMenuPortal && menuPortalTarget;\n\n const aiDialogWindow =\n aiDialog && aiType === 'small' ? (\n <div\n className={classnames('ai-dialog-window', style['ai-dialog-window'], {\n 'is-mobile-full': deviceIsMobile,\n [style['is-mobile-full']]: deviceIsMobile,\n [style['is-viewport']]: deviceIsMobile && !portalMenu\n })}\n >\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n {!deviceIsMobile && (\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\n }}\n />\n )}\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('ai-dialog-window-content', style['ai-dialog-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n ) : null;\n\n const aiEntryMobile = deviceIsMobile && aiDialog && aiType === 'closed' ? <MobileAiEntry variant={portalMenu ? 'boundary' : 'viewport'} onOpen={() => setAiType('small')} /> : null;\n\n // portal 到 boundary(popup 挂载点)时,layout 上的 CSS 变量不会随 portal 继承,需要显式透传\n const aiPortalVars = {\n '--background': background,\n '--toolbar-height': deviceIsMobile && toolbarShow ? '72px' : '0px',\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n };\n\n const aiOverlayContent =\n aiDialogWindow || aiEntryMobile ? (\n <>\n {aiDialogWindow}\n {aiEntryMobile}\n </>\n ) : null;\n\n const aiOverlay = !aiOverlayContent\n ? null\n : portalMenu\n ? createPortal(\n <div className={classnames('ai-boundary-overlay', style['ai-boundary-overlay'])} style={aiPortalVars}>\n {aiOverlayContent}\n </div>,\n menuPortalTarget\n )\n : aiOverlayContent;\n\n return (\n <LayoutResponsiveScope boundaryRef={layoutBoundaryRef} scrollRef={pageScrollRef} getScrollElement={getPageScrollElement}>\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n ref={layoutBoundaryRef}\n className={classnames(className, 'layout', style['layout'], RESPONSIVE_BOUNDARY_CLASS, {\n 'is-mobile': deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n 'has-toolbar': deviceIsMobile && toolbarShow,\n [style['has-toolbar']]: deviceIsMobile && toolbarShow,\n 'has-navbar': deviceIsMobile && navbarShow,\n [style['has-navbar']]: deviceIsMobile && navbarShow\n })}\n style={{\n '--menu-max-width': menuMaxWidth,\n '--menu-min-width': menuMinWidth,\n '--background': background\n }}\n >\n {!portalMenu && layerMenuNode}\n <Flex style={{ flex: 1, minHeight: 0, width: '100%', height: 0 }}>\n {!portalMenu && menuNode}\n {portalMenu &&\n createPortal(\n <div className={classnames(style['menu-boundary-overlay'])} style={menuPortalVars}>\n {layerMenuNode}\n {menuNode}\n </div>,\n menuPortalTarget\n )}\n <Flex flex={1} ref={pageRef} className={classnames('page', style['page'])}>\n <Row className={classnames('page-content', style['page-content'])}>\n {!deviceIsMobile && aiDialog && aiType === 'inner' && (\n <Col span={8} className={classnames('page-dialog-outer', style['page-dialog-outer'])}>\n <div className={classnames('page-dialog', style['page-dialog'])}>\n <Flex className={classnames('ai-dialog-window-title', style['ai-dialog-window-title'])}>\n <div>{aiDialog.title}</div>\n <Flex gap={10}>\n <Icon\n className=\"btn\"\n type=\"icon-a-Typeclose\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('closed');\n }}\n />\n </Flex>\n </Flex>\n <ErrorBoundary>\n <div className={classnames('page-window-content', style['page-window-content'])}>{aiDialog.content}</div>\n </ErrorBoundary>\n </div>\n </Col>\n )}\n <Col span={!deviceIsMobile && aiDialog && aiType === 'inner' ? 16 : 24} className={RESPONSIVE_CONTAINER_CLASS}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n ref={handlePageScrollRef}\n className={classnames('page-children', style['page-children'], !deviceIsMobile && 'is-scroller', !deviceIsMobile && style['is-scroller'], !deviceIsMobile && RESPONSIVE_SCROLL_CLASS, {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n </Flex>\n {aiOverlay}\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={toolbarTarget} />\n </div>\n </Provider>\n </LayoutResponsiveScope>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useRef, useState } from 'react';\nimport Icon from '@kne/react-icon';\nimport ButtonGroup from '@kne/button-group';\nimport classnames from 'classnames';\nimport { useNavigate } from 'react-router-dom';\nimport { useScrollElement, usePopupContainer, useResponsiveContext } from '@kne/responsive-utils';\nimport { useContext } from '../context';\nimport style from './style.module.scss';\nimport { Image } from '@kne/react-file';\n\nconst PageLoading = () => {\n return (\n <Flex flex={1} justify=\"center\">\n <div className={style['page-loading']}>\n <Skeleton active />\n </div>\n </Flex>\n );\n};\n\nconst Page = ({ title, extra = null, back, buttonProps, children, toolbar = true, navbar = true, noPadding }) => {\n const { setToolbarShow, setNavbarShow, setMenuOpen, deviceIsMobile, userAvatar, scrollReady } = useContext();\n const navigate = useNavigate();\n const getScrollElement = useScrollElement();\n const getBoundaryElement = usePopupContainer();\n const { mode } = useResponsiveContext();\n const navbarRef = useRef(null);\n const [isScrolled, setIsScrolled] = useState(false);\n const useBoundaryMount = deviceIsMobile && mode === 'container';\n const useViewportFixed = deviceIsMobile && mode !== 'container';\n const boundaryTarget = useBoundaryMount ? getBoundaryElement() : null;\n\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n useEffect(() => {\n if (!deviceIsMobile || !navbar) {\n return;\n }\n let boundKey = null;\n let remove = null;\n\n const bind = () => {\n const scrollEl = getScrollElement();\n if (!scrollEl) {\n return;\n }\n const isDocumentScroll = typeof document !== 'undefined' && (scrollEl === document.scrollingElement || scrollEl === document.documentElement || scrollEl === document.body);\n // document 滚动在部分环境听 element 不稳定,统一挂 window\n const listenTarget = isDocumentScroll ? window : scrollEl;\n if (!listenTarget || typeof listenTarget.addEventListener !== 'function') {\n return;\n }\n const nextKey = isDocumentScroll ? 'window' : scrollEl;\n if (nextKey === boundKey) {\n return;\n }\n if (typeof remove === 'function') {\n remove();\n }\n boundKey = nextKey;\n const readScrollTop = () => {\n if (isDocumentScroll) {\n return document.scrollingElement?.scrollTop ?? window.scrollY ?? 0;\n }\n return scrollEl.scrollTop || 0;\n };\n const handleScroll = () => {\n const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;\n setIsScrolled(readScrollTop() > threshold);\n };\n handleScroll();\n listenTarget.addEventListener('scroll', handleScroll, { passive: true });\n remove = () => listenTarget.removeEventListener('scroll', handleScroll);\n };\n\n bind();\n // SimpleBar / kne-responsive-scroll 可能在下一帧才就绪,补一次绑定\n const raf = requestAnimationFrame(bind);\n return () => {\n cancelAnimationFrame(raf);\n if (typeof remove === 'function') {\n remove();\n }\n };\n }, [deviceIsMobile, navbar, getScrollElement, scrollReady]);\n\n const titleExtraContent = (() => {\n if (extra) {\n if (deviceIsMobile && userAvatar) {\n return (\n <Flex gap={4} align=\"center\">\n {extra}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n );\n }\n return extra;\n }\n if (deviceIsMobile && (buttonProps || userAvatar)) {\n const actions = buttonProps ? (\n <div className={classnames('page-title-actions', style['page-title-actions'])}>\n <ButtonGroup {...Object.assign({}, buttonProps, { showLength: 0, moreType: 'link' })} />\n </div>\n ) : null;\n const avatar = userAvatar ? <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" /> : null;\n // 仅更多按钮时不要套带 gap 的 Flex,否则 ButtonGroup 测宽空节点也会吃 gap,导致不居中\n if (actions && avatar) {\n return (\n <Flex gap={4} align=\"center\">\n {actions}\n {avatar}\n </Flex>\n );\n }\n return actions || avatar;\n }\n if (buttonProps) {\n return <ButtonGroup {...buttonProps} />;\n }\n return null;\n })();\n\n const navbarInner = navbar ? (\n <Flex\n ref={navbarRef}\n justify=\"space-between\"\n align=\"center\"\n gap={20}\n className={classnames('page-header', style['page-header'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile,\n ['is-scrolled']: isScrolled,\n [style['is-scrolled']]: isScrolled,\n [style['is-boundary']]: useBoundaryMount && !!boundaryTarget,\n [style['is-viewport']]: useViewportFixed || (useBoundaryMount && !boundaryTarget)\n })}\n >\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typearrow_forward_ios\" fontClassName=\"system\" />}\n onClick={() => {\n navigate(-1);\n }}\n />\n )}\n {!back && deviceIsMobile && (\n <Button\n type=\"link\"\n icon={<Icon className={style['back-icon']} type=\"a-Typeequal\" fontClassName=\"system\" />}\n onClick={() => {\n setMenuOpen(open => !open);\n }}\n />\n )}\n <div className={classnames('page-title', style['page-title'])}>{title}</div>\n </Flex>\n {titleExtraContent ? <div className={classnames('page-title-extra', style['page-title-extra'], style['has-float'])}>{titleExtraContent}</div> : null}\n </Flex>\n ) : null;\n\n const navbarEl =\n navbarInner && useBoundaryMount && boundaryTarget\n ? createPortal(\n <div\n className={classnames('page-header-boundary-overlay', style['page-header-boundary-overlay'])}\n style={{\n '--safe-area-inset-top': 'env(safe-area-inset-top)',\n '--safe-area-inset-bottom': 'env(safe-area-inset-bottom)'\n }}\n >\n {navbarInner}\n </div>,\n boundaryTarget\n )\n : navbarInner;\n\n const pageInnerClassNameOrigin = classnames('page-inner', style['page-inner']);\n const pageInnerClassName = classnames(pageInnerClassNameOrigin, {\n ['no-padding']: noPadding,\n [style['no-padding']]: noPadding\n });\n\n const render = ({ children, className }) => {\n return (\n <>\n <div className={style['page-top']} />\n <Flex vertical flex={1}>\n {navbarEl}\n <Flex vertical flex={1} className={classnames(pageInnerClassNameOrigin, className)}>\n {children}\n </Flex>\n </Flex>\n <div className={style['page-bottom']} />\n </>\n );\n };\n\n return (\n <Flex\n vertical\n flex={1}\n className={classnames('page', style['page'], {\n ['is-mobile']: deviceIsMobile,\n [style['is-mobile']]: deviceIsMobile\n })}\n >\n {typeof children === 'function'\n ? children({\n navbar: navbarEl,\n className: pageInnerClassName,\n render,\n pageLoading: render({\n children: <PageLoading />\n })\n })\n : render({ children })}\n </Flex>\n );\n};\n\nPage.PageLoading = PageLoading;\n\nexport default Page;\n","import { IS_MOBILE_QUERY, MOBILE_BREAKPOINT } from '@kne/responsive-utils';\n\nconst isMobile = () => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(IS_MOBILE_QUERY).matches;\n};\n\nexport default isMobile;\nexport { MOBILE_BREAKPOINT };\n","import merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker', 'Tabs'];\n\nconst themeToken = {\n components: merge(\n {},\n transform(\n transparentBgContainerComponents,\n (result, component) => {\n result[component] = transparentBgContainer;\n },\n {}\n )\n )\n};\n\nexport default themeToken;\n","export { default } from './Layout';\nexport { default as Layout } from './Layout';\nexport { default as Page } from './Page';\nexport { default as isMobile, MOBILE_BREAKPOINT } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\n\nexport {\n MOBILE_BREAKPOINT as mobileBreakpoint,\n ResponsiveProvider,\n useBreakpoint,\n useMediaQuery,\n usePopupContainer,\n useScrollElement,\n useResponsiveContext,\n RESPONSIVE_CONTAINER_CLASS,\n RESPONSIVE_BOUNDARY_CLASS,\n RESPONSIVE_SCROLL_CLASS\n} from '@kne/responsive-utils';\n\nimport('./icons/index');\n"],"names":["UserCard","name","avatar","email","phone","description","menuOpen","extra","_jsx","Image","Avatar","id","src","shape","size","alt","_jsxs","Flex","gap","justify","children","vertical","className","classnames","style","MENU_ITEM_HEIGHT","MENU_GROUP_HEIGHT","MENU_GROUP_SPLIT_HEIGHT","getItemKey","item","index","key","path","Menu","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","listRef","useRef","virtualListRef","listHeight","setListHeight","useState","currentPathname","pathname","replace","RegExp","isItemActive","useCallback","ensureSlash","getEstimatedItemHeight","_items","hasGroup","group","estimatedItemHeight","useMemo","length","total","reduce","sum","Math","max","ceil","listData","map","activeIndex","findIndex","useLayoutEffect","el","current","updateHeight","styles","getComputedStyle","paddingY","parseFloat","paddingTop","paddingBottom","clientHeight","observer","ResizeObserver","observe","disconnect","_virtualListRef$curre","scrollTo","align","renderMenuItem","_items2","active","icon","title","label","onClick","e","event","groupLabel","Icon","type","fontClassName","isValidElement","isPlainObject","_extends","ref","VirtualList","data","height","itemHeight","itemKey","virtual","context","createContext","useContext","useReactContext","Provider","Consumer","resolveTarget","target","Toolbar","show","getScrollElement","useScrollElement","getBoundaryElement","usePopupContainer","mode","useResponsiveContext","isMobile","useIsMobile","scrollReady","toolbarMenu","filter","toolbar","itemRefs","firstRenderRef","indicator","setIndicator","left","width","scale","visible","clicked","setClicked","scrolling","setScrolling","scrollTimerRef","displayIndex","explicitTarget","useBoundaryMount","useViewportFixed","boundaryTarget","list","itemRect","getBoundingClientRect","listRect","newLeft","newWidth","prev","t1","setTimeout","t2","clearTimeout","useEffect","scrollEl","addEventListener","handleScroll","passive","removeEventListener","toolbarList","onAnimationEnd","transform","flex","createPortal","locale","systemError","refresh","withLocale","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","ErrorComponent","formatMessage","useIntl","Alert","message","showIcon","action","Button","danger","window","reload","ErrorBoundary","props","ReactErrorBoundary","errorComponent","normalizeMarkedScrollElement","marked","fromApi","nodeType","wrapper","querySelector","resolveDocumentScrollElement","document","scrollingElement","documentElement","body","resolvePageScrollElement","pageScrollRef","openScrollbar","deviceIsMobile","anchor","scrollParent","findScrollParent","findResponsiveScroll","parentElement","getDefaultScrollElement","LayoutResponsiveScope","boundaryRef","scrollRef","parent","inheritBoundary","ResponsiveProvider","containerWidth","fromParent","undefined","LayoutMenuOpenKey","DRAG_THRESHOLD","MobileAiEntry","variant","onOpen","btnRef","dragRef","pos","setPos","handlePointerDown","node","container","offsetParent","rect","refLeft","refTop","top","startX","clientX","startY","clientY","originLeft","originTop","refWidth","clientWidth","innerWidth","refHeight","innerHeight","offsetWidth","moved","setPointerCapture","pointerId","handlePointerMove","drag","dx","dy","abs","maxLeft","maxTop","min","handlePointerUp","_btnRef$current","releasePointerCapture","right","bottom","onPointerDown","onPointerMove","onPointerUp","colorful","Layout","menu","background","menuMaxWidth","menuMinWidth","logo","menuHeader","userInfo","aiDialog","openScrollbarProps","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","responsiveContext","useMenuPortal","menuPortalTarget","setMenuPortalTarget","setMenuOpen","toolbarShow","setToolbarShow","navbarShow","setNavbarShow","aiType","setAiType","setScrollReady","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","Object","assign","defaultLogo","topRef","pageRef","layoutBoundaryRef","getPageScrollElement","handlePageScrollRef","version","_topRef$current","scrollIntoView","userCard","menuPortalVars","layerMenuNode","menuNode","setItem","ExpandIcon","portalMenu","aiDialogWindow","content","aiEntryMobile","aiPortalVars","aiOverlayContent","_Fragment","aiOverlay","value","RESPONSIVE_BOUNDARY_CLASS","minHeight","Row","Col","span","RESPONSIVE_CONTAINER_CLASS","SimpleBar","RESPONSIVE_SCROLL_CLASS","PageLoading","Skeleton","Page","back","buttonProps","navbar","noPadding","navbarRef","isScrolled","setIsScrolled","boundKey","remove","bind","isDocumentScroll","listenTarget","nextKey","readScrollTop","_ref","_document$scrollingEl","_document$scrollingEl2","scrollTop","scrollY","threshold","offsetHeight","raf","requestAnimationFrame","cancelAnimationFrame","titleExtraContent","actions","ButtonGroup","showLength","moreType","navbarInner","open","navbarEl","pageInnerClassNameOrigin","pageInnerClassName","render","pageLoading","matchMedia","IS_MOBILE_QUERY","matches","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","result","component"],"mappings":"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"}
|