@kne/system-layout 0.2.0-alpha.14 → 0.2.0-alpha.16
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-b610bc5a.js → index-b1c94af4.js} +1 -1
- package/dist/{index-b610bc5a.js.map → index-b1c94af4.js.map} +1 -1
- package/dist/index.css +408 -163
- package/dist/index.css.map +1 -1
- package/dist/index.js +240 -79
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +181 -34
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/context.js","../src/isMobile.js","../src/useIsMobile.js","../src/Layout/index.js","../src/Page/index.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 }) => {\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 </Flex>\n </Flex>\n );\n};\n\nexport default UserCard;\n","import { Flex } from 'antd';\nimport { isValidElement } 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 style from './style.module.scss';\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n return (\n <div className={classnames('menu', className, style['menu-list'])}>\n {items.map((item, index) => {\n const active = (() => {\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\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 return (\n <div\n key={item.key || item.path || 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 </div>\n );\n};\n\nexport default Menu;\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 } from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n const toolbarMenu = items.filter(item => item.toolbar);\n\n if (!show) {\n return null;\n }\n\n return (\n <div className={classnames('toolbar', style['toolbar'], className)}>\n {createPortal(\n <Flex className={classnames('toolbar-list', style['toolbar-list'])}>\n {toolbarMenu.map((item, index) => {\n const active = (() => {\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 icon = typeof item.icon === 'function' ? item.icon({ active }) : item.icon;\n return (\n <Flex\n key={item.key || item.path || index}\n vertical\n flex={1}\n justify=\"center\"\n align=\"center\"\n gap={8}\n className={classnames('toolbar-item', style['toolbar-item'], {\n ['is-active']: active\n })}\n onClick={e => {\n if (active) {\n return;\n }\n onChange && onChange(item, { 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 {(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 target ? (typeof target === 'function' ? target() : target) : document.body\n )}\n </div>\n );\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 { 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","const isMobile = () => {\n return /iPhone|iPod|Android|ios|iPad/i.test(navigator.userAgent) || window.innerWidth < 768;\n};\n\nexport default isMobile;\n","import { useState, useEffect } from 'react';\nimport getIsMobile from './isMobile';\nimport throttle from 'lodash/throttle';\n\nconst useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(() => getIsMobile());\n\n useEffect(() => {\n const handler = throttle(() => {\n setIsMobile(getIsMobile());\n }, 500);\n window.addEventListener('resize', handler);\n return () => {\n window.removeEventListener('resize', handler);\n };\n }, []);\n\n return isMobile;\n};\n\nexport default useIsMobile;\n","import { useMemo, useState, useRef, useEffect } from 'react';\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 'simplebar-react/dist/simplebar.min.css';\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\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 deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\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 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 logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar]);\n const topRef = useRef(null);\n const location = useLocation();\n\n useEffect(() => {\n topRef.current && topRef.current.scrollIntoView();\n }, [location]);\n return (\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n className={classnames(className, 'layout', style['layout'], {\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 {deviceIsMobile && (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen\n })}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n )}\n <Flex>\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen\n })}\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 }) : menuHeader : <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />}</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 && (\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 <Flex flex={1} 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}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n className={classnames('page-children', style['page-children'], {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n className={classnames('page-children', 'is-scroller', style['page-children'], style['is-scroller'], {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n {aiDialog && aiType === 'small' && (\n <div className={classnames('ai-dialog-window', style['ai-dialog-window'])}>\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-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\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 )}\n </Flex>\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={toolbarTarget} />\n </div>\n </Provider>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\nimport { useEffect } 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 { 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 } = useContext();\n const navigate = useNavigate();\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n const navbarEl = navbar ? (\n <Flex justify=\"space-between\" align=\"center\" gap={20} className={classnames('page-header', style['page-header'])}>\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"text\"\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 <div className={classnames('page-title-extra', style['page-title-extra'])}>\n {extra ? (\n extra\n ) : deviceIsMobile ? (\n <Flex gap={4} align=\"center\">\n {buttonProps && <ButtonGroup {...Object.assign({}, buttonProps, deviceIsMobile ? { showLength: 0, moreType: 'link' } : {})} />}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n ) : (\n buttonProps && <ButtonGroup {...buttonProps} />\n )}\n </div>\n </Flex>\n ) : null;\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 merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker'];\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 } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\n\nimport('./icons/index');\n"],"names":["UserCard","name","avatar","email","phone","description","menuOpen","_jsx","Image","Avatar","id","src","shape","size","alt","_jsxs","Flex","gap","justify","children","vertical","className","classnames","style","Menu","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","currentPathname","pathname","replace","RegExp","map","item","index","active","key","path","ensureSlash","icon","hasGroup","group","title","label","onClick","e","event","groupLabel","align","Icon","type","fontClassName","isValidElement","isPlainObject","Toolbar","show","target","toolbarMenu","filter","toolbar","createPortal","flex","document","body","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","context","createContext","useContext","useReactContext","Provider","Consumer","isMobile","test","navigator","userAgent","innerWidth","useIsMobile","setIsMobile","useState","getIsMobile","useEffect","handler","throttle","addEventListener","removeEventListener","LayoutMenuOpenKey","Layout","_ref","menu","background","menuMaxWidth","menuMinWidth","logo","menuHeader","userInfo","aiDialog","openScrollbar","openScrollbarProps","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","deviceIsMobile","setMenuOpen","toolbarShow","setToolbarShow","navbarShow","setNavbarShow","aiType","setAiType","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","useMemo","Object","assign","defaultLogo","topRef","useRef","current","scrollIntoView","value","ref","_extends","setItem","ExpandIcon","colorful","Row","Col","span","content","SimpleBar","PageLoading","Skeleton","Page","extra","back","buttonProps","navbar","noPadding","navbarEl","open","ButtonGroup","showLength","moreType","pageInnerClassNameOrigin","pageInnerClassName","render","_ref2","_Fragment","pageLoading","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","transform","result","component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/Layout/UserCard.js","../src/Menu/index.js","../src/Toolbar/index.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/ErrorComponent/index.js","../src/context.js","../src/isMobile.js","../src/useIsMobile.js","../src/Layout/index.js","../src/Page/index.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 } 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 style from './style.module.scss';\n\nconst Menu = ({ className, menuOpen, items, activeKey, base = '', onChange }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const currentPathname = base ? location.pathname.replace(new RegExp(`^${base}`), '') : location.pathname;\n return (\n <div className={classnames('menu', className, style['menu-list'])}>\n {items.map((item, index) => {\n const active = (() => {\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\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 return (\n <div\n key={item.key || item.path || 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 </div>\n );\n};\n\nexport default Menu;\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';\n\nconst Toolbar = ({ show = true, className, items, activeKey, base = '', onChange, target }) => {\n const location = useLocation();\n const navigate = useNavigate();\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\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 // Phase 1: scale up\n setIndicator(prev => ({ ...prev, scale: 1.15 }));\n\n // Phase 2: move\n const t1 = setTimeout(() => {\n setIndicator(prev => ({ ...prev, left: newLeft, width: newWidth }));\n }, 120);\n\n // Phase 3: scale down\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]);\n\n const resolvedTarget = target ? (typeof target === 'function' ? target() : target) : null;\n\n useEffect(() => {\n if (!resolvedTarget) {\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 window.addEventListener('scroll', handleScroll, { passive: true });\n document.addEventListener('scroll', handleScroll, { passive: true, capture: true });\n return () => {\n window.removeEventListener('scroll', handleScroll);\n document.removeEventListener('scroll', handleScroll, { capture: true });\n if (scrollTimerRef.current) {\n clearTimeout(scrollTimerRef.current);\n }\n };\n }, [resolvedTarget]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div className={classnames('toolbar', style['toolbar'], className)}>\n {createPortal(\n <Flex\n ref={listRef}\n className={classnames('toolbar-list', style['toolbar-list'], {\n ['is-clicked']: clicked,\n ['is-scrolling']: scrolling\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, { menuOpen, 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 resolvedTarget || document.body\n )}\n </div>\n );\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 { 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","const isMobile = () => {\n return /iPhone|iPod|Android|ios|iPad/i.test(navigator.userAgent) || window.innerWidth < 768;\n};\n\nexport default isMobile;\n","import { useState, useEffect } from 'react';\nimport getIsMobile from './isMobile';\nimport throttle from 'lodash/throttle';\n\nconst useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(() => getIsMobile());\n\n useEffect(() => {\n const handler = throttle(() => {\n setIsMobile(getIsMobile());\n }, 500);\n window.addEventListener('resize', handler);\n return () => {\n window.removeEventListener('resize', handler);\n };\n }, []);\n\n return isMobile;\n};\n\nexport default useIsMobile;\n","import { useMemo, useState, useRef, useEffect, useLayoutEffect } from 'react';\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 'simplebar-react/dist/simplebar.min.css';\n\nconst LayoutMenuOpenKey = 'LAYOUT_MENU_OPEN';\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 deviceIsMobile = typeof isMobileProps === 'boolean' ? isMobileProps : isMobile;\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 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 logo: Object.assign(\n {},\n logo\n ? logo\n : {\n src: defaultLogo\n }\n ),\n userAvatar\n };\n }, [deviceIsMobile, logo, userAvatar]);\n const topRef = useRef(null);\n const pageRef = useRef(null);\n const [computedToolbarTarget, setComputedToolbarTarget] = useState(toolbarTarget || null);\n const location = useLocation();\n\n useLayoutEffect(() => {\n if (!toolbarTarget) {\n setComputedToolbarTarget(document.body);\n }\n }, [toolbarTarget]);\n\n useEffect(() => {\n topRef.current && topRef.current.scrollIntoView();\n }, [location]);\n\n const userCard = <UserCard menuOpen={menuOpen} {...Object.assign({}, userInfo)} />;\n\n return (\n <Provider value={contextValue}>\n <div ref={topRef} />\n <div\n className={classnames(className, 'layout', style['layout'], {\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 {deviceIsMobile && (\n <div\n className={classnames('layer-menu', style['layer-menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen\n })}\n onClick={() => {\n setMenuOpen(false);\n }}\n />\n )}\n <Flex>\n <div\n className={classnames('menu', style['menu'], {\n ['open']: menuOpen,\n [style['open']]: menuOpen\n })}\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 && (\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 <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}>\n <ErrorBoundary>\n {openScrollbar ? (\n <SimpleBar\n className={classnames('page-children', style['page-children'], {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </SimpleBar>\n ) : (\n <div\n className={classnames('page-children', 'is-scroller', style['page-children'], style['is-scroller'], {\n ['has-left']: aiType === 'inner'\n })}\n >\n {children}\n </div>\n )}\n </ErrorBoundary>\n </Col>\n </Row>\n </Flex>\n {aiDialog && aiType === 'small' && (\n <div className={classnames('ai-dialog-window', style['ai-dialog-window'])}>\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-Typeopen_in_full\"\n fontClassName=\"system\"\n onClick={() => {\n setAiType('inner');\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 )}\n </Flex>\n <Toolbar {...menu} className={classnames(style['toolbar'])} show={deviceIsMobile && toolbarShow} target={computedToolbarTarget} />\n </div>\n </Provider>\n );\n};\n\nexport default Layout;\n","import { Flex, Button, Skeleton } from 'antd';\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 { 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 } = useContext();\n const navigate = useNavigate();\n const navbarRef = useRef(null);\n const [isScrolled, setIsScrolled] = useState(false);\n useEffect(() => {\n setToolbarShow && setToolbarShow(!!toolbar);\n setNavbarShow && setNavbarShow(!!navbar);\n }, [toolbar, navbar]);\n\n useEffect(() => {\n if (!deviceIsMobile || !navbar) {\n return;\n }\n const handleScroll = () => {\n const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;\n setIsScrolled(window.scrollY > threshold);\n };\n handleScroll();\n window.addEventListener('scroll', handleScroll, { passive: true });\n return () => window.removeEventListener('scroll', handleScroll);\n }, [deviceIsMobile, navbar]);\n\n const navbarEl = 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-scrolled']: isScrolled,\n [style['is-scrolled']]: isScrolled\n })}\n >\n <Flex className={classnames('page-title-outer', style['page-title-outer'])} align=\"center\" gap={4}>\n {back && (\n <Button\n type=\"text\"\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 <div className={classnames('page-title-extra', style['page-title-extra'])}>\n {extra ? (\n extra\n ) : deviceIsMobile ? (\n <Flex gap={4} align=\"center\">\n {buttonProps && <ButtonGroup {...Object.assign({}, buttonProps, deviceIsMobile ? { showLength: 0, moreType: 'link' } : {})} />}\n <Image.Avatar id={userAvatar} src={userAvatar} shape=\"circle\" size={30} alt=\"avatar\" />\n </Flex>\n ) : (\n buttonProps && <ButtonGroup {...buttonProps} />\n )}\n </div>\n </Flex>\n ) : null;\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 merge from 'lodash/merge';\nimport transform from 'lodash/transform';\n\nconst transparentBgContainer = { colorBgContainer: 'transparent' };\nconst transparentBgContainerComponents = ['Input', 'InputNumber', 'Card', 'Tree', 'Select', 'DatePicker'];\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 } from './isMobile';\nexport { default as useIsMobile } from './useIsMobile';\nexport { useContext as useLayoutContext } from './context';\nexport { default as themeToken } from './themeToken';\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","items","activeKey","base","onChange","location","useLocation","navigate","useNavigate","currentPathname","pathname","replace","RegExp","map","item","index","active","key","path","ensureSlash","icon","hasGroup","group","title","label","onClick","e","event","groupLabel","align","Icon","type","fontClassName","isValidElement","isPlainObject","Toolbar","show","target","toolbarMenu","filter","toolbar","itemRefs","useRef","firstRenderRef","indicator","setIndicator","useState","left","width","scale","visible","clicked","setClicked","scrolling","setScrolling","scrollTimerRef","activeIndex","findIndex","displayIndex","listRef","useLayoutEffect","current","list","itemRect","getBoundingClientRect","listRect","newLeft","newWidth","prev","t1","setTimeout","t2","clearTimeout","resolvedTarget","useEffect","handleScroll","window","addEventListener","passive","document","capture","removeEventListener","createPortal","ref","length","onAnimationEnd","transform","el","flex","body","locale","systemError","refresh","withLocale","createWithIntlProvider","defaultLocale","messages","zhCn","enUS","namespace","ErrorComponent","formatMessage","useIntl","Alert","message","showIcon","action","Button","danger","reload","ErrorBoundary","props","ReactErrorBoundary","errorComponent","context","createContext","useContext","useReactContext","Provider","isMobile","test","navigator","userAgent","innerWidth","useIsMobile","_useState","getIsMobile","setIsMobile","handler","throttle","LayoutMenuOpenKey","Layout","_ref","menu","_ref$background","background","_ref$menuMaxWidth","menuMaxWidth","_ref$menuMinWidth","menuMinWidth","logo","menuHeader","userInfo","_ref$aiDialog","aiDialog","openScrollbarProps","openScrollbar","isMobileProps","toolbarTarget","localMenuOpen","localStorage","getItem","deviceIsMobile","setMenuOpen","_useState2","toolbarShow","setToolbarShow","_useState3","navbarShow","setNavbarShow","_useState4","aiType","setAiType","__COMPONENTS_CORE_SIMPLE_BAR_DISABLED","userAvatar","contextValue","useMemo","Object","assign","defaultLogo","topRef","pageRef","_useState5","computedToolbarTarget","setComputedToolbarTarget","scrollIntoView","userCard","_extends","value","setItem","ExpandIcon","colorful","Row","Col","span","content","SimpleBar","PageLoading","Skeleton","Page","_ref$extra","back","buttonProps","_ref$toolbar","_ref$navbar","navbar","noPadding","_useContext","navbarRef","isScrolled","setIsScrolled","threshold","offsetHeight","scrollY","navbarEl","open","ButtonGroup","showLength","moreType","pageInnerClassNameOrigin","pageInnerClassName","render","_ref2","_Fragment","pageLoading","transparentBgContainer","colorBgContainer","transparentBgContainerComponents","themeToken","components","merge","result","component"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isValidElement, useContext as useContext$1, createContext,
|
|
1
|
+
import { isValidElement, useRef, useState, useLayoutEffect, useEffect, useContext as useContext$1, createContext, useMemo } from 'react';
|
|
2
2
|
import { Flex, Alert, Button, Row, Col, Skeleton } from 'antd';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import localStorage from '@kne/local-storage';
|
|
@@ -30,7 +30,7 @@ function _extends() {
|
|
|
30
30
|
}, _extends.apply(null, arguments);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
var style$3 = {"layout":"
|
|
33
|
+
var style$3 = {"layout":"kne-system-layout_sK89O","has-toolbar":"kne-system-layout_gyKfI","has-navbar":"kne-system-layout_X1wZG","menu":"kne-system-layout_-LpWn","open":"kne-system-layout_G-zuN","layer-menu":"kne-system-layout_6TCwG","ai-entry":"kne-system-layout_5qnw5","page":"kne-system-layout_HnwkM","toolbar":"kne-system-layout_h8PAW","page-children":"kne-system-layout_OM1Q2","is-mobile":"kne-system-layout_udBgQ","menu-inner":"kne-system-layout_7wq3X","logo":"kne-system-layout_-T-Dc","menu-header":"kne-system-layout_LOrmu","logo-img":"kne-system-layout_2cRWf","expand-btn-wrapper":"kne-system-layout_5D-Oq","expand-btn-bg":"kne-system-layout_p4eOE","expand-btn":"kne-system-layout_8dzE7","username":"kne-system-layout_b7XeQ","user-description":"kne-system-layout_U0YTk","menu-list":"kne-system-layout_8gqbZ","ai-dialog-window":"kne-system-layout_UAJc-","pulse-dialog-window":"kne-system-layout_VjIWn","page-dialog-outer":"kne-system-layout_I7Anv","page-dialog":"kne-system-layout_UhsFd","pulse-page-dialog":"kne-system-layout_H7slV","page-window-content":"kne-system-layout_2mdNn","is-scroller":"kne-system-layout_6gjkS","page-content":"kne-system-layout_nyAa2","ai-dialog-window-title":"kne-system-layout_33Tja","ai-dialog-window-content":"kne-system-layout_YmBhl"};
|
|
34
34
|
|
|
35
35
|
const UserCard = ({
|
|
36
36
|
name,
|
|
@@ -38,7 +38,8 @@ const UserCard = ({
|
|
|
38
38
|
email,
|
|
39
39
|
phone,
|
|
40
40
|
description,
|
|
41
|
-
menuOpen
|
|
41
|
+
menuOpen,
|
|
42
|
+
extra
|
|
42
43
|
}) => {
|
|
43
44
|
if (!menuOpen) {
|
|
44
45
|
return /*#__PURE__*/jsx(Image.Avatar, {
|
|
@@ -66,12 +67,12 @@ const UserCard = ({
|
|
|
66
67
|
}), /*#__PURE__*/jsx("div", {
|
|
67
68
|
className: classnames('user-description', style$3['user-description']),
|
|
68
69
|
children: email || phone || description || '-'
|
|
69
|
-
})]
|
|
70
|
+
}), extra]
|
|
70
71
|
})]
|
|
71
72
|
});
|
|
72
73
|
};
|
|
73
74
|
|
|
74
|
-
var style$2 = {"menu-group":"
|
|
75
|
+
var style$2 = {"menu-group":"kne-system-layout_Rfzv4","menu-item-icon":"kne-system-layout_qoDtD","menu-group-split":"kne-system-layout_socoO","menu-item":"kne-system-layout_Xa-2h"};
|
|
75
76
|
|
|
76
77
|
const Menu = ({
|
|
77
78
|
className,
|
|
@@ -169,7 +170,7 @@ const Menu = ({
|
|
|
169
170
|
});
|
|
170
171
|
};
|
|
171
172
|
|
|
172
|
-
var style$1 = {"toolbar":"
|
|
173
|
+
var style$1 = {"toolbar":"kne-system-layout_SLK-0","toolbar-list":"kne-system-layout_GTQvM","toolbar-item":"kne-system-layout_fAZ3n","toolbar-item-icon":"kne-system-layout_qOB9o","is-hidden":"kne-system-layout_ss5zk","toolbar-item-label":"kne-system-layout_h48es","toolbar-indicator":"kne-system-layout_1s-bc","toolbar-click":"kne-system-layout_Ys3yu"};
|
|
173
174
|
|
|
174
175
|
const Toolbar = ({
|
|
175
176
|
show: _show = true,
|
|
@@ -184,44 +185,160 @@ const Toolbar = ({
|
|
|
184
185
|
const navigate = useNavigate();
|
|
185
186
|
const currentPathname = _base ? location.pathname.replace(new RegExp(`^${_base}`), '') : location.pathname;
|
|
186
187
|
const toolbarMenu = items.filter(item => item.toolbar);
|
|
188
|
+
const itemRefs = useRef([]);
|
|
189
|
+
const firstRenderRef = useRef(true);
|
|
190
|
+
const [indicator, setIndicator] = useState({
|
|
191
|
+
left: 0,
|
|
192
|
+
width: 0,
|
|
193
|
+
scale: 1,
|
|
194
|
+
visible: false
|
|
195
|
+
});
|
|
196
|
+
const [clicked, setClicked] = useState(false);
|
|
197
|
+
const [scrolling, setScrolling] = useState(false);
|
|
198
|
+
const scrollTimerRef = useRef(null);
|
|
199
|
+
const activeIndex = toolbarMenu.findIndex(item => {
|
|
200
|
+
if (typeof activeKey === 'string') {
|
|
201
|
+
return activeKey === item.key;
|
|
202
|
+
}
|
|
203
|
+
if (typeof activeKey === 'function') {
|
|
204
|
+
return activeKey(item, {
|
|
205
|
+
base: _base
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
if (typeof item.path === 'string') {
|
|
209
|
+
return ensureSlash(currentPathname) === ensureSlash(item.path);
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
});
|
|
213
|
+
const displayIndex = activeIndex >= 0 ? activeIndex : 0;
|
|
214
|
+
const listRef = useRef(null);
|
|
215
|
+
useLayoutEffect(() => {
|
|
216
|
+
if (activeIndex < 0) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const item = itemRefs.current[activeIndex];
|
|
220
|
+
const list = listRef.current;
|
|
221
|
+
if (!item || !list) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const itemRect = item.getBoundingClientRect();
|
|
225
|
+
const listRect = list.getBoundingClientRect();
|
|
226
|
+
const newLeft = itemRect.left - listRect.left;
|
|
227
|
+
const newWidth = itemRect.width;
|
|
228
|
+
if (firstRenderRef.current) {
|
|
229
|
+
firstRenderRef.current = false;
|
|
230
|
+
setIndicator({
|
|
231
|
+
left: newLeft,
|
|
232
|
+
width: newWidth,
|
|
233
|
+
scale: 1,
|
|
234
|
+
visible: true
|
|
235
|
+
});
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Phase 1: scale up
|
|
240
|
+
setIndicator(prev => _extends({}, prev, {
|
|
241
|
+
scale: 1.15
|
|
242
|
+
}));
|
|
243
|
+
|
|
244
|
+
// Phase 2: move
|
|
245
|
+
const t1 = setTimeout(() => {
|
|
246
|
+
setIndicator(prev => _extends({}, prev, {
|
|
247
|
+
left: newLeft,
|
|
248
|
+
width: newWidth
|
|
249
|
+
}));
|
|
250
|
+
}, 120);
|
|
251
|
+
|
|
252
|
+
// Phase 3: scale down
|
|
253
|
+
const t2 = setTimeout(() => {
|
|
254
|
+
setIndicator(prev => _extends({}, prev, {
|
|
255
|
+
scale: 1
|
|
256
|
+
}));
|
|
257
|
+
}, 380);
|
|
258
|
+
return () => {
|
|
259
|
+
clearTimeout(t1);
|
|
260
|
+
clearTimeout(t2);
|
|
261
|
+
};
|
|
262
|
+
}, [activeIndex, _show, target]);
|
|
263
|
+
const resolvedTarget = target ? typeof target === 'function' ? target() : target : null;
|
|
264
|
+
useEffect(() => {
|
|
265
|
+
if (!resolvedTarget) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const handleScroll = () => {
|
|
269
|
+
setScrolling(true);
|
|
270
|
+
if (scrollTimerRef.current) {
|
|
271
|
+
clearTimeout(scrollTimerRef.current);
|
|
272
|
+
}
|
|
273
|
+
scrollTimerRef.current = setTimeout(() => {
|
|
274
|
+
setScrolling(false);
|
|
275
|
+
}, 500);
|
|
276
|
+
};
|
|
277
|
+
window.addEventListener('scroll', handleScroll, {
|
|
278
|
+
passive: true
|
|
279
|
+
});
|
|
280
|
+
document.addEventListener('scroll', handleScroll, {
|
|
281
|
+
passive: true,
|
|
282
|
+
capture: true
|
|
283
|
+
});
|
|
284
|
+
return () => {
|
|
285
|
+
window.removeEventListener('scroll', handleScroll);
|
|
286
|
+
document.removeEventListener('scroll', handleScroll, {
|
|
287
|
+
capture: true
|
|
288
|
+
});
|
|
289
|
+
if (scrollTimerRef.current) {
|
|
290
|
+
clearTimeout(scrollTimerRef.current);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
}, [resolvedTarget]);
|
|
187
294
|
if (!_show) {
|
|
188
295
|
return null;
|
|
189
296
|
}
|
|
190
297
|
return /*#__PURE__*/jsx("div", {
|
|
191
298
|
className: classnames('toolbar', style$1['toolbar'], className),
|
|
192
|
-
children: /*#__PURE__*/createPortal(/*#__PURE__*/
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
299
|
+
children: /*#__PURE__*/createPortal(/*#__PURE__*/jsxs(Flex, {
|
|
300
|
+
ref: listRef,
|
|
301
|
+
className: classnames('toolbar-list', style$1['toolbar-list'], {
|
|
302
|
+
['is-clicked']: clicked,
|
|
303
|
+
['is-scrolling']: scrolling
|
|
304
|
+
}),
|
|
305
|
+
style: {
|
|
306
|
+
'--toolbar-count': toolbarMenu.length || 1
|
|
307
|
+
},
|
|
308
|
+
onAnimationEnd: () => {
|
|
309
|
+
if (clicked) {
|
|
310
|
+
setClicked(false);
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
children: [indicator.visible && /*#__PURE__*/jsx("div", {
|
|
314
|
+
className: classnames('toolbar-indicator', style$1['toolbar-indicator']),
|
|
315
|
+
style: {
|
|
316
|
+
left: `${indicator.left}px`,
|
|
317
|
+
width: `${indicator.width}px`,
|
|
318
|
+
transform: `scale(${indicator.scale})`
|
|
319
|
+
}
|
|
320
|
+
}), toolbarMenu.map((item, index) => {
|
|
321
|
+
const active = index === activeIndex;
|
|
209
322
|
const icon = typeof item.icon === 'function' ? item.icon({
|
|
210
323
|
active
|
|
211
324
|
}) : item.icon;
|
|
212
325
|
return /*#__PURE__*/jsxs(Flex, {
|
|
326
|
+
ref: el => {
|
|
327
|
+
itemRefs.current[index] = el;
|
|
328
|
+
},
|
|
213
329
|
vertical: true,
|
|
214
330
|
flex: 1,
|
|
215
331
|
justify: "center",
|
|
216
332
|
align: "center",
|
|
217
|
-
gap: 8,
|
|
218
333
|
className: classnames('toolbar-item', style$1['toolbar-item'], {
|
|
219
|
-
['is-active']: active
|
|
334
|
+
['is-active']: active,
|
|
335
|
+
[style$1['is-hidden']]: scrolling && index !== displayIndex
|
|
220
336
|
}),
|
|
221
337
|
onClick: e => {
|
|
222
338
|
if (active) {
|
|
223
339
|
return;
|
|
224
340
|
}
|
|
341
|
+
setClicked(true);
|
|
225
342
|
onChange && onChange(item, {
|
|
226
343
|
base: _base
|
|
227
344
|
});
|
|
@@ -262,8 +379,8 @@ const Toolbar = ({
|
|
|
262
379
|
children: item.label
|
|
263
380
|
})]
|
|
264
381
|
}, item.key || item.path || index);
|
|
265
|
-
})
|
|
266
|
-
}),
|
|
382
|
+
})]
|
|
383
|
+
}), resolvedTarget || document.body)
|
|
267
384
|
});
|
|
268
385
|
};
|
|
269
386
|
|
|
@@ -377,10 +494,20 @@ const Layout = ({
|
|
|
377
494
|
};
|
|
378
495
|
}, [deviceIsMobile, logo, userAvatar]);
|
|
379
496
|
const topRef = useRef(null);
|
|
497
|
+
const pageRef = useRef(null);
|
|
498
|
+
const [computedToolbarTarget, setComputedToolbarTarget] = useState(toolbarTarget || null);
|
|
380
499
|
const location = useLocation();
|
|
500
|
+
useLayoutEffect(() => {
|
|
501
|
+
if (!toolbarTarget) {
|
|
502
|
+
setComputedToolbarTarget(document.body);
|
|
503
|
+
}
|
|
504
|
+
}, [toolbarTarget]);
|
|
381
505
|
useEffect(() => {
|
|
382
506
|
topRef.current && topRef.current.scrollIntoView();
|
|
383
507
|
}, [location]);
|
|
508
|
+
const userCard = /*#__PURE__*/jsx(UserCard, _extends({
|
|
509
|
+
menuOpen: menuOpen
|
|
510
|
+
}, Object.assign({}, userInfo)));
|
|
384
511
|
return /*#__PURE__*/jsxs(Provider, {
|
|
385
512
|
value: contextValue,
|
|
386
513
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -437,10 +564,9 @@ const Layout = ({
|
|
|
437
564
|
className: classnames('menu-header', style$3['menu-header']),
|
|
438
565
|
children: /*#__PURE__*/jsx(ErrorBoundary, {
|
|
439
566
|
children: menuHeader ? typeof menuHeader === 'function' ? menuHeader({
|
|
440
|
-
menuOpen
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
}, Object.assign({}, userInfo)))
|
|
567
|
+
menuOpen,
|
|
568
|
+
userCard
|
|
569
|
+
}) : menuHeader : userCard
|
|
444
570
|
})
|
|
445
571
|
}), /*#__PURE__*/jsx(ErrorBoundary, {
|
|
446
572
|
children: /*#__PURE__*/jsx(Menu, _extends({
|
|
@@ -464,6 +590,7 @@ const Layout = ({
|
|
|
464
590
|
})]
|
|
465
591
|
}), /*#__PURE__*/jsx(Flex, {
|
|
466
592
|
flex: 1,
|
|
593
|
+
ref: pageRef,
|
|
467
594
|
className: classnames('page', style$3['page']),
|
|
468
595
|
children: /*#__PURE__*/jsxs(Row, {
|
|
469
596
|
className: classnames('page-content', style$3['page-content']),
|
|
@@ -545,13 +672,13 @@ const Layout = ({
|
|
|
545
672
|
}), /*#__PURE__*/jsx(Toolbar, _extends({}, menu, {
|
|
546
673
|
className: classnames(style$3['toolbar']),
|
|
547
674
|
show: deviceIsMobile && toolbarShow,
|
|
548
|
-
target:
|
|
675
|
+
target: computedToolbarTarget
|
|
549
676
|
}))]
|
|
550
677
|
})]
|
|
551
678
|
});
|
|
552
679
|
};
|
|
553
680
|
|
|
554
|
-
var style = {"page":"
|
|
681
|
+
var style = {"page":"kne-system-layout_c1kXt","page-header":"kne-system-layout_h-YXH","is-scrolled":"kne-system-layout_dEXMy","page-title-outer":"kne-system-layout_jhcGo","capsule-click":"kne-system-layout_Ps1FA","page-title-extra":"kne-system-layout_mKsLu","page-title":"kne-system-layout_IOVGr","page-top":"kne-system-layout_Y1y7o","page-inner":"kne-system-layout_wHWje","no-padding":"kne-system-layout_tBnAD","is-mobile":"kne-system-layout_yRZMx","page-loading":"kne-system-layout_vcf3J","page-bottom":"kne-system-layout_vXk1s","back-icon":"kne-system-layout_07Mna"};
|
|
555
682
|
|
|
556
683
|
const PageLoading = () => {
|
|
557
684
|
return /*#__PURE__*/jsx(Flex, {
|
|
@@ -583,15 +710,35 @@ const Page = ({
|
|
|
583
710
|
userAvatar
|
|
584
711
|
} = useContext();
|
|
585
712
|
const navigate = useNavigate();
|
|
713
|
+
const navbarRef = useRef(null);
|
|
714
|
+
const [isScrolled, setIsScrolled] = useState(false);
|
|
586
715
|
useEffect(() => {
|
|
587
716
|
setToolbarShow && setToolbarShow(!!_toolbar);
|
|
588
717
|
setNavbarShow && setNavbarShow(!!_navbar);
|
|
589
718
|
}, [_toolbar, _navbar]);
|
|
719
|
+
useEffect(() => {
|
|
720
|
+
if (!deviceIsMobile || !_navbar) {
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
723
|
+
const handleScroll = () => {
|
|
724
|
+
const threshold = navbarRef.current ? navbarRef.current.offsetHeight : 48;
|
|
725
|
+
setIsScrolled(window.scrollY > threshold);
|
|
726
|
+
};
|
|
727
|
+
handleScroll();
|
|
728
|
+
window.addEventListener('scroll', handleScroll, {
|
|
729
|
+
passive: true
|
|
730
|
+
});
|
|
731
|
+
return () => window.removeEventListener('scroll', handleScroll);
|
|
732
|
+
}, [deviceIsMobile, _navbar]);
|
|
590
733
|
const navbarEl = _navbar ? /*#__PURE__*/jsxs(Flex, {
|
|
734
|
+
ref: navbarRef,
|
|
591
735
|
justify: "space-between",
|
|
592
736
|
align: "center",
|
|
593
737
|
gap: 20,
|
|
594
|
-
className: classnames('page-header', style['page-header']
|
|
738
|
+
className: classnames('page-header', style['page-header'], {
|
|
739
|
+
['is-scrolled']: isScrolled,
|
|
740
|
+
[style['is-scrolled']]: isScrolled
|
|
741
|
+
}),
|
|
595
742
|
children: [/*#__PURE__*/jsxs(Flex, {
|
|
596
743
|
className: classnames('page-title-outer', style['page-title-outer']),
|
|
597
744
|
align: "center",
|