@knockout-js/layout 0.0.2
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/LICENSE +21 -0
- package/README.md +15 -0
- package/es2017/components/avatar-dropdown/index.d.ts +25 -0
- package/es2017/components/avatar-dropdown/index.js +47 -0
- package/es2017/components/avatar-dropdown/index.js.map +1 -0
- package/es2017/components/avatar-dropdown/index.module.css +23 -0
- package/es2017/components/avatar-dropdown/locale/en_US.d.ts +3 -0
- package/es2017/components/avatar-dropdown/locale/en_US.js +6 -0
- package/es2017/components/avatar-dropdown/locale/en_US.js.map +1 -0
- package/es2017/components/avatar-dropdown/locale/zh_CN.d.ts +3 -0
- package/es2017/components/avatar-dropdown/locale/zh_CN.js +6 -0
- package/es2017/components/avatar-dropdown/locale/zh_CN.js.map +1 -0
- package/es2017/components/collect-providers/index.d.ts +22 -0
- package/es2017/components/collect-providers/index.js +38 -0
- package/es2017/components/collect-providers/index.js.map +1 -0
- package/es2017/components/i18n-dropdown/index.d.ts +10 -0
- package/es2017/components/i18n-dropdown/index.js +44 -0
- package/es2017/components/i18n-dropdown/index.js.map +1 -0
- package/es2017/components/i18n-dropdown/index.module.css +13 -0
- package/es2017/components/icons/index.d.ts +2 -0
- package/es2017/components/icons/index.js +19 -0
- package/es2017/components/icons/index.js.map +1 -0
- package/es2017/components/index.d.ts +12 -0
- package/es2017/components/index.js +15 -0
- package/es2017/components/index.js.map +1 -0
- package/es2017/components/keep-alive/index.d.ts +17 -0
- package/es2017/components/keep-alive/index.js +29 -0
- package/es2017/components/keep-alive/index.js.map +1 -0
- package/es2017/components/layout/index.d.ts +54 -0
- package/es2017/components/layout/index.js +123 -0
- package/es2017/components/layout/index.js.map +1 -0
- package/es2017/components/layout/layout.module.css +46 -0
- package/es2017/components/layout/woocoo.png +0 -0
- package/es2017/components/leave-prompt/index.d.ts +21 -0
- package/es2017/components/leave-prompt/index.js +62 -0
- package/es2017/components/leave-prompt/index.js.map +1 -0
- package/es2017/components/leave-prompt/locale/en_US.d.ts +3 -0
- package/es2017/components/leave-prompt/locale/en_US.js +6 -0
- package/es2017/components/leave-prompt/locale/en_US.js.map +1 -0
- package/es2017/components/leave-prompt/locale/zh_CN.d.ts +3 -0
- package/es2017/components/leave-prompt/locale/zh_CN.js +6 -0
- package/es2017/components/leave-prompt/locale/zh_CN.js.map +1 -0
- package/es2017/components/locale/en_US.d.ts +3 -0
- package/es2017/components/locale/en_US.js +14 -0
- package/es2017/components/locale/en_US.js.map +1 -0
- package/es2017/components/locale/index.d.ts +33 -0
- package/es2017/components/locale/index.js +39 -0
- package/es2017/components/locale/index.js.map +1 -0
- package/es2017/components/locale/zh_CN.d.ts +3 -0
- package/es2017/components/locale/zh_CN.js +14 -0
- package/es2017/components/locale/zh_CN.js.map +1 -0
- package/es2017/components/tenant-dropdown/index.d.ts +18 -0
- package/es2017/components/tenant-dropdown/index.js +80 -0
- package/es2017/components/tenant-dropdown/index.js.map +1 -0
- package/es2017/components/tenant-dropdown/index.module.css +13 -0
- package/es2017/components/tenant-dropdown/locale/en_US.d.ts +3 -0
- package/es2017/components/tenant-dropdown/locale/en_US.js +8 -0
- package/es2017/components/tenant-dropdown/locale/en_US.js.map +1 -0
- package/es2017/components/tenant-dropdown/locale/zh_CN.d.ts +3 -0
- package/es2017/components/tenant-dropdown/locale/zh_CN.js +8 -0
- package/es2017/components/tenant-dropdown/locale/zh_CN.js.map +1 -0
- package/es2017/components/theme-switch/index.d.ts +22 -0
- package/es2017/components/theme-switch/index.js +21 -0
- package/es2017/components/theme-switch/index.js.map +1 -0
- package/es2017/components/theme-switch/locale/en_US.d.ts +3 -0
- package/es2017/components/theme-switch/locale/en_US.js +7 -0
- package/es2017/components/theme-switch/locale/en_US.js.map +1 -0
- package/es2017/components/theme-switch/locale/zh_CN.d.ts +3 -0
- package/es2017/components/theme-switch/locale/zh_CN.js +7 -0
- package/es2017/components/theme-switch/locale/zh_CN.js.map +1 -0
- package/es2017/index.d.ts +1 -0
- package/es2017/index.js +3 -0
- package/es2017/index.js.map +1 -0
- package/es2017/typings.d.ts +1 -0
- package/esm/components/avatar-dropdown/index.d.ts +25 -0
- package/esm/components/avatar-dropdown/index.js +47 -0
- package/esm/components/avatar-dropdown/index.js.map +1 -0
- package/esm/components/avatar-dropdown/index.module.css +23 -0
- package/esm/components/avatar-dropdown/locale/en_US.d.ts +3 -0
- package/esm/components/avatar-dropdown/locale/en_US.js +6 -0
- package/esm/components/avatar-dropdown/locale/en_US.js.map +1 -0
- package/esm/components/avatar-dropdown/locale/zh_CN.d.ts +3 -0
- package/esm/components/avatar-dropdown/locale/zh_CN.js +6 -0
- package/esm/components/avatar-dropdown/locale/zh_CN.js.map +1 -0
- package/esm/components/collect-providers/index.d.ts +22 -0
- package/esm/components/collect-providers/index.js +39 -0
- package/esm/components/collect-providers/index.js.map +1 -0
- package/esm/components/i18n-dropdown/index.d.ts +10 -0
- package/esm/components/i18n-dropdown/index.js +46 -0
- package/esm/components/i18n-dropdown/index.js.map +1 -0
- package/esm/components/i18n-dropdown/index.module.css +13 -0
- package/esm/components/icons/index.d.ts +2 -0
- package/esm/components/icons/index.js +19 -0
- package/esm/components/icons/index.js.map +1 -0
- package/esm/components/index.d.ts +12 -0
- package/esm/components/index.js +15 -0
- package/esm/components/index.js.map +1 -0
- package/esm/components/keep-alive/index.d.ts +17 -0
- package/esm/components/keep-alive/index.js +29 -0
- package/esm/components/keep-alive/index.js.map +1 -0
- package/esm/components/layout/index.d.ts +54 -0
- package/esm/components/layout/index.js +142 -0
- package/esm/components/layout/index.js.map +1 -0
- package/esm/components/layout/layout.module.css +46 -0
- package/esm/components/layout/woocoo.png +0 -0
- package/esm/components/leave-prompt/index.d.ts +21 -0
- package/esm/components/leave-prompt/index.js +62 -0
- package/esm/components/leave-prompt/index.js.map +1 -0
- package/esm/components/leave-prompt/locale/en_US.d.ts +3 -0
- package/esm/components/leave-prompt/locale/en_US.js +6 -0
- package/esm/components/leave-prompt/locale/en_US.js.map +1 -0
- package/esm/components/leave-prompt/locale/zh_CN.d.ts +3 -0
- package/esm/components/leave-prompt/locale/zh_CN.js +6 -0
- package/esm/components/leave-prompt/locale/zh_CN.js.map +1 -0
- package/esm/components/locale/en_US.d.ts +3 -0
- package/esm/components/locale/en_US.js +14 -0
- package/esm/components/locale/en_US.js.map +1 -0
- package/esm/components/locale/index.d.ts +33 -0
- package/esm/components/locale/index.js +39 -0
- package/esm/components/locale/index.js.map +1 -0
- package/esm/components/locale/zh_CN.d.ts +3 -0
- package/esm/components/locale/zh_CN.js +14 -0
- package/esm/components/locale/zh_CN.js.map +1 -0
- package/esm/components/tenant-dropdown/index.d.ts +18 -0
- package/esm/components/tenant-dropdown/index.js +100 -0
- package/esm/components/tenant-dropdown/index.js.map +1 -0
- package/esm/components/tenant-dropdown/index.module.css +13 -0
- package/esm/components/tenant-dropdown/locale/en_US.d.ts +3 -0
- package/esm/components/tenant-dropdown/locale/en_US.js +8 -0
- package/esm/components/tenant-dropdown/locale/en_US.js.map +1 -0
- package/esm/components/tenant-dropdown/locale/zh_CN.d.ts +3 -0
- package/esm/components/tenant-dropdown/locale/zh_CN.js +8 -0
- package/esm/components/tenant-dropdown/locale/zh_CN.js.map +1 -0
- package/esm/components/theme-switch/index.d.ts +22 -0
- package/esm/components/theme-switch/index.js +21 -0
- package/esm/components/theme-switch/index.js.map +1 -0
- package/esm/components/theme-switch/locale/en_US.d.ts +3 -0
- package/esm/components/theme-switch/locale/en_US.js +7 -0
- package/esm/components/theme-switch/locale/en_US.js.map +1 -0
- package/esm/components/theme-switch/locale/zh_CN.d.ts +3 -0
- package/esm/components/theme-switch/locale/zh_CN.js +7 -0
- package/esm/components/theme-switch/locale/zh_CN.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -0
- package/esm/typings.d.ts +1 -0
- package/package.json +71 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-present Alibaba Group Holding Limited, https://www.alibabagroup.com/
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { MenuProps } from 'antd';
|
|
3
|
+
export interface AvatarDropdownLocale {
|
|
4
|
+
logout: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AvatarDropdownProps {
|
|
7
|
+
/**
|
|
8
|
+
* 用户名
|
|
9
|
+
*/
|
|
10
|
+
name?: string;
|
|
11
|
+
/**
|
|
12
|
+
* 头像
|
|
13
|
+
*/
|
|
14
|
+
avatar?: string;
|
|
15
|
+
/**
|
|
16
|
+
* ant的
|
|
17
|
+
*/
|
|
18
|
+
menuProps?: MenuProps;
|
|
19
|
+
/**
|
|
20
|
+
* 单击退出事件 () => void;
|
|
21
|
+
*/
|
|
22
|
+
onLogoutClick?: () => void;
|
|
23
|
+
}
|
|
24
|
+
declare const AvatarDropdown: (props: AvatarDropdownProps) => JSX.Element;
|
|
25
|
+
export default AvatarDropdown;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ice/jsx-runtime/jsx-runtime";
|
|
2
|
+
import React, { useCallback } from "react";
|
|
3
|
+
import { LogoutOutlined, UserOutlined } from "@ant-design/icons";
|
|
4
|
+
import { Dropdown, Avatar } from "antd";
|
|
5
|
+
import styles from "./index.module.css";
|
|
6
|
+
import { useLocale } from "../locale/index";
|
|
7
|
+
const AvatarDropdown = (props)=>{
|
|
8
|
+
const locale = useLocale('AvatarDropdown'), menu = {
|
|
9
|
+
items: [
|
|
10
|
+
{
|
|
11
|
+
key: 'logout',
|
|
12
|
+
label: locale.logout,
|
|
13
|
+
icon: /*#__PURE__*/ _jsx(LogoutOutlined, {
|
|
14
|
+
rev: undefined
|
|
15
|
+
}),
|
|
16
|
+
onClick: useCallback(()=>{
|
|
17
|
+
var _props_onLogoutClick;
|
|
18
|
+
(_props_onLogoutClick = props.onLogoutClick) === null || _props_onLogoutClick === void 0 ? void 0 : _props_onLogoutClick.call(props);
|
|
19
|
+
}, []),
|
|
20
|
+
className: styles.menu
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
return /*#__PURE__*/ _jsx(Dropdown, {
|
|
25
|
+
menu: props.menuProps || menu,
|
|
26
|
+
children: /*#__PURE__*/ _jsxs("span", {
|
|
27
|
+
className: `${styles.action} ${styles.account}`,
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ _jsx(Avatar, {
|
|
30
|
+
size: "small",
|
|
31
|
+
className: styles.avatar,
|
|
32
|
+
icon: /*#__PURE__*/ _jsx(UserOutlined, {
|
|
33
|
+
rev: undefined
|
|
34
|
+
}),
|
|
35
|
+
src: props.avatar,
|
|
36
|
+
alt: "avatar"
|
|
37
|
+
}),
|
|
38
|
+
/*#__PURE__*/ _jsx("span", {
|
|
39
|
+
children: props.name
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
export default AvatarDropdown;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\avatar-dropdown\\index.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\r\nimport { LogoutOutlined, UserOutlined } from '@ant-design/icons';\r\nimport { Dropdown, Avatar, MenuProps } from 'antd';\r\nimport styles from './index.module.css';\r\nimport { useLocale } from '../locale';\r\n\r\nexport interface AvatarDropdownLocale {\r\n logout: string;\r\n}\r\n\r\nexport interface AvatarDropdownProps {\r\n /**\r\n * 用户名\r\n */\r\n name?: string;\r\n /**\r\n * 头像\r\n */\r\n avatar?: string;\r\n /**\r\n * ant的\r\n */\r\n menuProps?: MenuProps;\r\n /**\r\n * 单击退出事件 () => void;\r\n */\r\n onLogoutClick?: () => void;\r\n}\r\n\r\nconst AvatarDropdown = (props: AvatarDropdownProps) => {\r\n const locale = useLocale('AvatarDropdown'),\r\n menu = {\r\n items: [\r\n {\r\n key: 'logout',\r\n label: locale.logout,\r\n icon: <LogoutOutlined rev={undefined} />,\r\n onClick: useCallback(() => {\r\n props.onLogoutClick?.()\r\n }, []),\r\n className: styles.menu,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n <Dropdown menu={props.menuProps || menu}>\r\n <span className={`${styles.action} ${styles.account}`}>\r\n <Avatar\r\n size=\"small\"\r\n className={styles.avatar}\r\n icon={<UserOutlined rev={undefined} />}\r\n src={props.avatar}\r\n alt=\"avatar\"\r\n />\r\n <span>{props.name}</span>\r\n </span>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default AvatarDropdown;\r\n"],"names":["React","useCallback","LogoutOutlined","UserOutlined","Dropdown","Avatar","styles","useLocale","AvatarDropdown","props","locale","menu","items","key","label","logout","icon","rev","undefined","onClick","onLogoutClick","className","menuProps","span","action","account","size","avatar","src","alt","name"],"mappings":";AAAA,OAAOA,SAASC,WAAW,QAAQ,QAAQ;AAC3C,SAASC,cAAc,EAAEC,YAAY,QAAQ,oBAAoB;AACjE,SAASC,QAAQ,EAAEC,MAAM,QAAmB,OAAO;AACnD,OAAOC,YAAY,qBAAqB;AACxC,SAASC,SAAS,QAAQ,kBAAY;AAyBtC,MAAMC,iBAAiB,CAACC,QAA+B;IACrD,MAAMC,SAASH,UAAU,mBACvBI,OAAO;QACLC,OAAO;YACL;gBACEC,KAAK;gBACLC,OAAOJ,OAAOK,MAAM;gBACpBC,oBAAM,KAACd;oBAAee,KAAKC;;gBAC3BC,SAASlB,YAAY,IAAM;wBACzBQ;oBAAAA,CAAAA,uBAAAA,MAAMW,aAAa,cAAnBX,kCAAAA,KAAAA,IAAAA,qBAAAA,KAAAA;gBACF,GAAG,EAAE;gBACLY,WAAWf,OAAOK,IAAI;YACxB;SACD;IACH;IAEF,qBACE,KAACP;QAASO,MAAMF,MAAMa,SAAS,IAAIX;kBACjC,cAAA,MAACY;YAAKF,WAAW,CAAC,EAAEf,OAAOkB,MAAM,CAAC,CAAC,EAAElB,OAAOmB,OAAO,CAAC,CAAC;;8BACnD,KAACpB;oBACCqB,MAAK;oBACLL,WAAWf,OAAOqB,MAAM;oBACxBX,oBAAM,KAACb;wBAAac,KAAKC;;oBACzBU,KAAKnB,MAAMkB,MAAM;oBACjBE,KAAI;;8BAEN,KAACN;8BAAMd,MAAMqB,IAAI;;;;;AAIzB;AAEA,eAAetB,eAAe"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.action {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
height: 48px;
|
|
5
|
+
padding: 0 12px;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
transition: all 0.3s;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.action>span {
|
|
11
|
+
vertical-align: middle;
|
|
12
|
+
font-size: 14px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.account>.avatar {
|
|
16
|
+
margin-right: 8px;
|
|
17
|
+
vertical-align: top;
|
|
18
|
+
background: rgba(255, 255, 255, 0.85);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.menu {
|
|
22
|
+
min-width: 160px;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\avatar-dropdown\\locale\\en_US.ts"],"sourcesContent":["import { AvatarDropdownLocale } from \"../index\";\r\n\r\nconst locale: AvatarDropdownLocale = {\r\n logout: 'logout'\r\n};\r\n\r\nexport default locale\r\n"],"names":["locale","logout"],"mappings":"AAEA,MAAMA,SAA+B;IACnCC,QAAQ;AACV;AAEA,eAAeD,OAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\avatar-dropdown\\locale\\zh_CN.ts"],"sourcesContent":["import { AvatarDropdownLocale } from \"../index\";\r\n\r\nconst locale: AvatarDropdownLocale = {\r\n logout: '退出'\r\n};\r\n\r\nexport default locale\r\n"],"names":["locale","logout"],"mappings":"AAEA,MAAMA,SAA+B;IACnCC,QAAQ;AACV;AAEA,eAAeD,OAAM"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LocaleType } from "../locale";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
export interface CollectProviderProps {
|
|
4
|
+
/**
|
|
5
|
+
* @knockout-js 的多语言 locale
|
|
6
|
+
*/
|
|
7
|
+
locale: LocaleType;
|
|
8
|
+
/**
|
|
9
|
+
* ProConfig dark主题
|
|
10
|
+
*/
|
|
11
|
+
dark: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 传递动态的 location.pathname
|
|
14
|
+
*/
|
|
15
|
+
pathname: string;
|
|
16
|
+
/**
|
|
17
|
+
* 默认插槽
|
|
18
|
+
*/
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
declare const _default: (props: CollectProviderProps) => JSX.Element;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
|
|
2
|
+
import { LocaleType } from "../locale/index";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { ProConfigProvider } from "@ant-design/pro-provider";
|
|
5
|
+
import { BasicProvider, LeavePrompt } from "../index";
|
|
6
|
+
import { ConfigProvider } from "antd";
|
|
7
|
+
import { AliveScope } from "react-activation";
|
|
8
|
+
import zhCN from "antd/locale/zh_CN";
|
|
9
|
+
import enUS from "antd/locale/en_US";
|
|
10
|
+
export default ((props)=>{
|
|
11
|
+
const [antLocale, setAntLocale] = useState(zhCN);
|
|
12
|
+
useEffect(()=>{
|
|
13
|
+
if (props.locale === LocaleType.zhCN) {
|
|
14
|
+
setAntLocale(zhCN);
|
|
15
|
+
} else if (props.locale === LocaleType.enUS) {
|
|
16
|
+
setAntLocale(enUS);
|
|
17
|
+
}
|
|
18
|
+
}, [
|
|
19
|
+
props.locale
|
|
20
|
+
]);
|
|
21
|
+
return /*#__PURE__*/ _jsx(ProConfigProvider, {
|
|
22
|
+
dark: props.dark,
|
|
23
|
+
children: /*#__PURE__*/ _jsx(BasicProvider, {
|
|
24
|
+
locale: props.locale,
|
|
25
|
+
children: /*#__PURE__*/ _jsx(ConfigProvider, {
|
|
26
|
+
locale: antLocale,
|
|
27
|
+
children: /*#__PURE__*/ _jsx(LeavePrompt, {
|
|
28
|
+
pathname: props.pathname,
|
|
29
|
+
children: /*#__PURE__*/ _jsx(AliveScope, {
|
|
30
|
+
children: props.children
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\collect-providers\\index.tsx"],"sourcesContent":["import { Locale } from \"antd/es/locale\";\r\nimport { LocaleType } from \"../locale\"\r\nimport { ReactNode, useEffect, useState } from \"react\";\r\nimport { ProConfigProvider } from \"@ant-design/pro-provider\";\r\nimport { BasicProvider, LeavePrompt } from \"..\";\r\nimport { ConfigProvider } from \"antd\";\r\nimport { AliveScope } from \"react-activation\";\r\nimport zhCN from 'antd/locale/zh_CN';\r\nimport enUS from 'antd/locale/en_US';\r\nexport interface CollectProviderProps {\r\n /**\r\n * @knockout-js 的多语言 locale\r\n */\r\n locale: LocaleType;\r\n /**\r\n * ProConfig dark主题\r\n */\r\n dark: boolean;\r\n /**\r\n * 传递动态的 location.pathname\r\n */\r\n pathname: string;\r\n /**\r\n * 默认插槽\r\n */\r\n children: ReactNode;\r\n}\r\n\r\nexport default (props: CollectProviderProps) => {\r\n\r\n const [antLocale, setAntLocale] = useState<Locale>(zhCN);\r\n\r\n useEffect(() => {\r\n if (props.locale === LocaleType.zhCN) {\r\n setAntLocale(zhCN)\r\n } else if (props.locale === LocaleType.enUS) {\r\n setAntLocale(enUS)\r\n }\r\n }, [props.locale]);\r\n\r\n return (\r\n <ProConfigProvider dark={props.dark}>\r\n <BasicProvider locale={props.locale}>\r\n <ConfigProvider locale={antLocale}>\r\n <LeavePrompt pathname={props.pathname}>\r\n <AliveScope>\r\n {props.children}\r\n </AliveScope>\r\n </LeavePrompt>\r\n </ConfigProvider>\r\n </BasicProvider>\r\n </ProConfigProvider >\r\n )\r\n}\r\n"],"names":["LocaleType","useEffect","useState","ProConfigProvider","BasicProvider","LeavePrompt","ConfigProvider","AliveScope","zhCN","enUS","props","antLocale","setAntLocale","locale","dark","pathname","children"],"mappings":";AACA,SAASA,UAAU,QAAQ,kBAAW;AACtC,SAAoBC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AACvD,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,aAAa,EAAEC,WAAW,QAAQ,WAAK;AAChD,SAASC,cAAc,QAAQ,OAAO;AACtC,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,OAAOC,UAAU,oBAAoB;AACrC,OAAOC,UAAU,oBAAoB;AAoBrC,eAAe,CAAA,CAACC,QAAgC;IAE9C,MAAM,CAACC,WAAWC,aAAa,GAAGV,SAAiBM;IAEnDP,UAAU,IAAM;QACd,IAAIS,MAAMG,MAAM,KAAKb,WAAWQ,IAAI,EAAE;YACpCI,aAAaJ;QACf,OAAO,IAAIE,MAAMG,MAAM,KAAKb,WAAWS,IAAI,EAAE;YAC3CG,aAAaH;QACf,CAAC;IACH,GAAG;QAACC,MAAMG,MAAM;KAAC;IAEjB,qBACE,KAACV;QAAkBW,MAAMJ,MAAMI,IAAI;kBACjC,cAAA,KAACV;YAAcS,QAAQH,MAAMG,MAAM;sBACjC,cAAA,KAACP;gBAAeO,QAAQF;0BACtB,cAAA,KAACN;oBAAYU,UAAUL,MAAMK,QAAQ;8BACnC,cAAA,KAACR;kCACEG,MAAMM,QAAQ;;;;;;AAO7B,CAAA,EAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { LocaleType } from '../locale';
|
|
3
|
+
export interface I18nDropdownProps {
|
|
4
|
+
/**
|
|
5
|
+
* 值变更事件 (value: LocaleType) => void;
|
|
6
|
+
*/
|
|
7
|
+
onChange?: (value: LocaleType) => void;
|
|
8
|
+
}
|
|
9
|
+
declare function I18nDropdown(props: I18nDropdownProps): JSX.Element;
|
|
10
|
+
export default I18nDropdown;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useCallback, useContext } from "react";
|
|
3
|
+
import { Dropdown } from "antd";
|
|
4
|
+
import styles from "./index.module.css";
|
|
5
|
+
import { BasicContext, LocaleType } from "../locale/index";
|
|
6
|
+
function I18nDropdown(props) {
|
|
7
|
+
const ctx = useContext(BasicContext), [localeName, setLocaleName] = useState(''), menuItemOnClick = useCallback(({ key })=>{
|
|
8
|
+
var _props_onChange;
|
|
9
|
+
(_props_onChange = props.onChange) === null || _props_onChange === void 0 ? void 0 : _props_onChange.call(props, key);
|
|
10
|
+
}, []), menuItems = [
|
|
11
|
+
{
|
|
12
|
+
key: LocaleType.zhCN,
|
|
13
|
+
label: '简体',
|
|
14
|
+
onClick: menuItemOnClick
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
key: LocaleType.enUS,
|
|
18
|
+
label: 'En',
|
|
19
|
+
onClick: menuItemOnClick
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
useEffect(()=>{
|
|
23
|
+
const item = menuItems === null || menuItems === void 0 ? void 0 : menuItems.find((item)=>{
|
|
24
|
+
return (item === null || item === void 0 ? void 0 : item.key) == ctx.locale;
|
|
25
|
+
});
|
|
26
|
+
setLocaleName((item === null || item === void 0 ? void 0 : item.label) || '');
|
|
27
|
+
}, [
|
|
28
|
+
ctx.locale
|
|
29
|
+
]);
|
|
30
|
+
return /*#__PURE__*/ _jsx(Dropdown, {
|
|
31
|
+
menu: {
|
|
32
|
+
items: menuItems
|
|
33
|
+
},
|
|
34
|
+
children: /*#__PURE__*/ _jsx("span", {
|
|
35
|
+
className: styles.action,
|
|
36
|
+
children: /*#__PURE__*/ _jsx("span", {
|
|
37
|
+
children: localeName
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export default I18nDropdown;
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\i18n-dropdown\\index.tsx"],"sourcesContent":["import { useState, useEffect, useCallback, useContext } from 'react';\r\nimport { Dropdown, MenuProps } from 'antd';\r\nimport styles from './index.module.css';\r\nimport { BasicContext, BasicProviderProps, LocaleType } from '../locale';\r\n\r\nexport interface I18nDropdownProps {\r\n /**\r\n * 值变更事件 (value: LocaleType) => void;\r\n */\r\n onChange?: (value: LocaleType) => void;\r\n}\r\n\r\nfunction I18nDropdown(props: I18nDropdownProps) {\r\n const ctx = useContext<BasicProviderProps>(BasicContext),\r\n [localeName, setLocaleName] = useState(''),\r\n menuItemOnClick = useCallback(({ key }: { key: React.Key }) => {\r\n props.onChange?.(key as LocaleType)\r\n }, []),\r\n menuItems = [\r\n {\r\n key: LocaleType.zhCN,\r\n label: '简体',\r\n onClick: menuItemOnClick,\r\n },\r\n {\r\n key: LocaleType.enUS,\r\n label: 'En',\r\n onClick: menuItemOnClick,\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n const item = menuItems?.find(item => item?.key == ctx.locale);\r\n setLocaleName(item?.label || '')\r\n }, [ctx.locale]);\r\n\r\n return (\r\n <Dropdown menu={{\r\n items: menuItems,\r\n }}>\r\n <span className={styles.action}>\r\n <span>{localeName}</span>\r\n </span>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default I18nDropdown;\r\n"],"names":["useState","useEffect","useCallback","useContext","Dropdown","styles","BasicContext","LocaleType","I18nDropdown","props","ctx","localeName","setLocaleName","menuItemOnClick","key","onChange","menuItems","zhCN","label","onClick","enUS","item","find","locale","menu","items","span","className","action"],"mappings":";AAAA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,UAAU,QAAQ,QAAQ;AACrE,SAASC,QAAQ,QAAmB,OAAO;AAC3C,OAAOC,YAAY,qBAAqB;AACxC,SAASC,YAAY,EAAsBC,UAAU,QAAQ,kBAAY;AASzE,SAASC,aAAaC,KAAwB,EAAE;IAC9C,MAAMC,MAAMP,WAA+BG,eACzC,CAACK,YAAYC,cAAc,GAAGZ,SAAS,KACvCa,kBAAkBX,YAAY,CAAC,EAAEY,IAAG,EAAsB,GAAK;YAC7DL;QAAAA,CAAAA,kBAAAA,MAAMM,QAAQ,cAAdN,6BAAAA,KAAAA,IAAAA,gBAAAA,KAAAA,OAAiBK;IACnB,GAAG,EAAE,GACLE,YAAY;QACV;YACEF,KAAKP,WAAWU,IAAI;YACpBC,OAAO;YACPC,SAASN;QACX;QACA;YACEC,KAAKP,WAAWa,IAAI;YACpBF,OAAO;YACPC,SAASN;QACX;KACD;IAEHZ,UAAU,IAAM;QACd,MAAMoB,OAAOL,sBAAAA,uBAAAA,KAAAA,IAAAA,UAAWM,IAAI,CAACD,CAAAA;YAAQA,OAAAA,CAAAA,iBAAAA,kBAAAA,KAAAA,IAAAA,KAAMP,GAAG,AAAD,KAAKJ,IAAIa,MAAM;;QAC5DX,cAAcS,CAAAA,iBAAAA,kBAAAA,KAAAA,IAAAA,KAAMH,KAAK,AAAD,KAAK;IAC/B,GAAG;QAACR,IAAIa,MAAM;KAAC;IAEf,qBACE,KAACnB;QAASoB,MAAM;YACdC,OAAOT;QACT;kBACE,cAAA,KAACU;YAAKC,WAAWtB,OAAOuB,MAAM;sBAC5B,cAAA,KAACF;0BAAMf;;;;AAIf;AAEA,eAAeH,aAAa"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
|
|
4
|
+
export const OpenWin = (props)=>{
|
|
5
|
+
return /*#__PURE__*/ _jsx("svg", _object_spread_props(_object_spread({
|
|
6
|
+
fill: "currentColor",
|
|
7
|
+
viewBox: "0 0 1024 1024",
|
|
8
|
+
"p-id": "19410",
|
|
9
|
+
width: "12",
|
|
10
|
+
height: "12"
|
|
11
|
+
}, props), {
|
|
12
|
+
children: /*#__PURE__*/ _jsx("path", {
|
|
13
|
+
d: "M398.506667 960H160q-39.765333 0-67.882667-28.117333-28.117333-28.117333-28.117333-67.882667V160q0-39.765333 28.117333-67.882667Q120.234667 64 160 64h704q39.765333 0 67.882667 28.117333 28.117333 28.117333 28.117333 67.882667v149.333333a32 32 0 0 1-32 32H128v522.666667q0 13.226667 9.386667 22.613333 9.386667 9.386667 22.613333 9.386667h238.506667a32 32 0 0 1 0 64zM128 160V277.333333h768V160q0-13.226667-9.386667-22.613333-9.386667-9.386667-22.613333-9.386667H160q-13.226667 0-22.613333 9.386667-9.386667 9.386667-9.386667 22.613333z m800.512 341.333333H672a32 32 0 0 0 0 64h178.773333l-340.053333 340.053334a32 32 0 0 0 45.226667 45.226666L896 610.602667v178.773333a32 32 0 0 0 64 0v-255.573333a31.914667 31.914667 0 0 0-31.488-32.426667z",
|
|
14
|
+
"p-id": "19411"
|
|
15
|
+
})
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\icons\\index.tsx"],"sourcesContent":["import { SVGProps } from \"react\"\r\n\r\nexport const OpenWin = (props: JSX.IntrinsicAttributes & SVGProps<SVGSVGElement>) => {\r\n return <svg\r\n fill=\"currentColor\"\r\n viewBox=\"0 0 1024 1024\"\r\n p-id=\"19410\"\r\n width=\"12\"\r\n height=\"12\"\r\n {...props}\r\n >\r\n <path d=\"M398.506667 960H160q-39.765333 0-67.882667-28.117333-28.117333-28.117333-28.117333-67.882667V160q0-39.765333 28.117333-67.882667Q120.234667 64 160 64h704q39.765333 0 67.882667 28.117333 28.117333 28.117333 28.117333 67.882667v149.333333a32 32 0 0 1-32 32H128v522.666667q0 13.226667 9.386667 22.613333 9.386667 9.386667 22.613333 9.386667h238.506667a32 32 0 0 1 0 64zM128 160V277.333333h768V160q0-13.226667-9.386667-22.613333-9.386667-9.386667-22.613333-9.386667H160q-13.226667 0-22.613333 9.386667-9.386667 9.386667-9.386667 22.613333z m800.512 341.333333H672a32 32 0 0 0 0 64h178.773333l-340.053333 340.053334a32 32 0 0 0 45.226667 45.226666L896 610.602667v178.773333a32 32 0 0 0 64 0v-255.573333a31.914667 31.914667 0 0 0-31.488-32.426667z\" p-id=\"19411\"></path>\r\n </svg>\r\n}\r\n"],"names":["OpenWin","props","svg","fill","viewBox","p-id","width","height","path","d"],"mappings":";;;AAEA,OAAO,MAAMA,UAAU,CAACC,QAA6D;IACnF,qBAAO,KAACC;QACNC,MAAK;QACLC,SAAQ;QACRC,QAAK;QACLC,OAAM;QACNC,QAAO;OACHN;kBAEJ,cAAA,KAACO;YAAKC,GAAE;YAAwuBJ,QAAK;;;AAEzvB,EAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { default as BasicProvider, BasicContext, type BasicProviderProps, LocaleType } from './locale';
|
|
2
|
+
export { default as ThemeSwitch } from './theme-switch';
|
|
3
|
+
export { default as AvatarDropdown } from './avatar-dropdown';
|
|
4
|
+
export { default as KeepAlive } from './keep-alive';
|
|
5
|
+
export { default as TenantDropdown } from './tenant-dropdown';
|
|
6
|
+
export { default as LeavePrompt, useLeavePrompt } from './leave-prompt';
|
|
7
|
+
export { default as I18nDropdown } from './i18n-dropdown';
|
|
8
|
+
export { default as CollectProviders } from './collect-providers';
|
|
9
|
+
export { default as Layout } from './layout';
|
|
10
|
+
export declare enum iceUrqlInstance {
|
|
11
|
+
ucenter = "ucenter"
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { default as BasicProvider, BasicContext, LocaleType } from "./locale/index";
|
|
2
|
+
export { default as ThemeSwitch } from "./theme-switch/index";
|
|
3
|
+
export { default as AvatarDropdown } from "./avatar-dropdown/index";
|
|
4
|
+
export { default as KeepAlive } from "./keep-alive/index";
|
|
5
|
+
export { default as TenantDropdown } from "./tenant-dropdown/index";
|
|
6
|
+
export { default as LeavePrompt, useLeavePrompt } from "./leave-prompt/index";
|
|
7
|
+
export { default as I18nDropdown } from "./i18n-dropdown/index";
|
|
8
|
+
export { default as CollectProviders } from "./collect-providers/index";
|
|
9
|
+
export { default as Layout } from "./layout/index";
|
|
10
|
+
export var iceUrqlInstance;
|
|
11
|
+
(function(iceUrqlInstance) {
|
|
12
|
+
iceUrqlInstance["ucenter"] = "ucenter";
|
|
13
|
+
})(iceUrqlInstance || (iceUrqlInstance = {}));
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\index.ts"],"sourcesContent":["export { default as BasicProvider, BasicContext, type BasicProviderProps, LocaleType } from './locale';\r\nexport { default as ThemeSwitch } from './theme-switch';\r\nexport { default as AvatarDropdown } from './avatar-dropdown';\r\nexport { default as KeepAlive } from './keep-alive';\r\nexport { default as TenantDropdown } from './tenant-dropdown';\r\nexport { default as LeavePrompt, useLeavePrompt } from './leave-prompt';\r\nexport { default as I18nDropdown } from './i18n-dropdown';\r\nexport { default as CollectProviders } from './collect-providers';\r\nexport { default as Layout } from './layout';\r\nexport enum iceUrqlInstance {\r\n ucenter = \"ucenter\"\r\n}\r\n"],"names":["default","BasicProvider","BasicContext","LocaleType","ThemeSwitch","AvatarDropdown","KeepAlive","TenantDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","Layout","iceUrqlInstance","ucenter"],"mappings":"AAAA,SAASA,WAAWC,aAAa,EAAEC,YAAY,EAA2BC,UAAU,QAAQ,iBAAW;AACvG,SAASH,WAAWI,WAAW,QAAQ,uBAAiB;AACxD,SAASJ,WAAWK,cAAc,QAAQ,0BAAoB;AAC9D,SAASL,WAAWM,SAAS,QAAQ,qBAAe;AACpD,SAASN,WAAWO,cAAc,QAAQ,0BAAoB;AAC9D,SAASP,WAAWQ,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAAST,WAAWU,YAAY,QAAQ,wBAAkB;AAC1D,SAASV,WAAWW,gBAAgB,QAAQ,4BAAsB;AAClE,SAASX,WAAWY,MAAM,QAAQ,iBAAW;WACtC;UAAKC,eAAe;IAAfA,gBACVC,aAAAA;GADUD,oBAAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface KeepAliveProps {
|
|
3
|
+
/**
|
|
4
|
+
* 在相同 location.pathname 通过传入id去区分
|
|
5
|
+
*/
|
|
6
|
+
id?: string;
|
|
7
|
+
/**
|
|
8
|
+
* 是否需要清空其他keepalive缓存
|
|
9
|
+
*/
|
|
10
|
+
clearAlive?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 默认插槽
|
|
13
|
+
*/
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare const KA: React.FunctionComponent<React.PropsWithChildren<KeepAliveProps>>;
|
|
17
|
+
export default KA;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import KeepAlive, { useAliveController } from "react-activation";
|
|
4
|
+
const KA = (props)=>{
|
|
5
|
+
const cacheKey = btoa(location.pathname), { dropScope , getCachingNodes } = useAliveController();
|
|
6
|
+
useEffect(()=>{
|
|
7
|
+
if (props.clearAlive) {
|
|
8
|
+
getCachingNodes().forEach((item)=>{
|
|
9
|
+
if (item.name && cacheKey != item.name) {
|
|
10
|
+
dropScope(item.name);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}, [
|
|
15
|
+
props.clearAlive
|
|
16
|
+
]);
|
|
17
|
+
return /*#__PURE__*/ _jsx(KeepAlive, {
|
|
18
|
+
when: true,
|
|
19
|
+
autoFreeze: false,
|
|
20
|
+
cacheKey: cacheKey,
|
|
21
|
+
name: cacheKey,
|
|
22
|
+
id: props.id,
|
|
23
|
+
children: props.children
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
KA.defaultProps = {};
|
|
27
|
+
export default KA;
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[".\\src\\components\\keep-alive\\index.tsx"],"sourcesContent":["import { ReactNode, useEffect } from 'react';\r\nimport KeepAlive, { useAliveController } from 'react-activation';\r\n\r\nexport interface KeepAliveProps {\r\n /**\r\n * 在相同 location.pathname 通过传入id去区分\r\n */\r\n id?: string;\r\n /**\r\n * 是否需要清空其他keepalive缓存\r\n */\r\n clearAlive?: boolean;\r\n /**\r\n * 默认插槽\r\n */\r\n children: ReactNode;\r\n}\r\n\r\nconst KA: React.FunctionComponent<React.PropsWithChildren<KeepAliveProps>> = (props: KeepAliveProps) => {\r\n const cacheKey = btoa(location.pathname),\r\n { dropScope, getCachingNodes } = useAliveController();\r\n\r\n useEffect(() => {\r\n if (props.clearAlive) {\r\n getCachingNodes().forEach(item => {\r\n if (item.name && cacheKey != item.name) {\r\n dropScope(item.name);\r\n }\r\n });\r\n }\r\n }, [props.clearAlive]);\r\n\r\n return (<KeepAlive when autoFreeze={false} cacheKey={cacheKey} name={cacheKey} id={props.id}>\r\n {props.children}\r\n </KeepAlive>);\r\n}\r\n\r\nKA.defaultProps = {}\r\n\r\nexport default KA;\r\n"],"names":["useEffect","KeepAlive","useAliveController","KA","props","cacheKey","btoa","location","pathname","dropScope","getCachingNodes","clearAlive","forEach","item","name","when","autoFreeze","id","children","defaultProps"],"mappings":";AAAA,SAAoBA,SAAS,QAAQ,QAAQ;AAC7C,OAAOC,aAAaC,kBAAkB,QAAQ,mBAAmB;AAiBjE,MAAMC,KAAuE,CAACC,QAA0B;IACtG,MAAMC,WAAWC,KAAKC,SAASC,QAAQ,GACrC,EAAEC,UAAS,EAAEC,gBAAe,EAAE,GAAGR;IAEnCF,UAAU,IAAM;QACd,IAAII,MAAMO,UAAU,EAAE;YACpBD,kBAAkBE,OAAO,CAACC,CAAAA,OAAQ;gBAChC,IAAIA,KAAKC,IAAI,IAAIT,YAAYQ,KAAKC,IAAI,EAAE;oBACtCL,UAAUI,KAAKC,IAAI;gBACrB,CAAC;YACH;QACF,CAAC;IACH,GAAG;QAACV,MAAMO,UAAU;KAAC;IAErB,qBAAQ,KAACV;QAAUc,IAAI;QAACC,YAAY,KAAK;QAAEX,UAAUA;QAAUS,MAAMT;QAAUY,IAAIb,MAAMa,EAAE;kBACxFb,MAAMc,QAAQ;;AAEnB;AAEAf,GAAGgB,YAAY,GAAG,CAAC;AAEnB,eAAehB,GAAG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { MenuDataItem, ProLayoutProps } from '@ant-design/pro-layout';
|
|
2
|
+
import { I18nDropdownProps } from '../i18n-dropdown';
|
|
3
|
+
import { TenantDropdownProps } from '../tenant-dropdown';
|
|
4
|
+
import { AvatarDropdownProps } from '../avatar-dropdown';
|
|
5
|
+
import { ThemeSwitchProps } from '../theme-switch';
|
|
6
|
+
import { ReactNode } from 'react';
|
|
7
|
+
import { IconFontProps } from '@ant-design/icons/lib/components/IconFont';
|
|
8
|
+
export interface LayoutProps {
|
|
9
|
+
/**
|
|
10
|
+
* 应用code
|
|
11
|
+
*/
|
|
12
|
+
appCode: string;
|
|
13
|
+
/**
|
|
14
|
+
* 传递动态的 location.pathname
|
|
15
|
+
*/
|
|
16
|
+
pathname: string;
|
|
17
|
+
/**
|
|
18
|
+
* 菜单启用iconfont
|
|
19
|
+
*/
|
|
20
|
+
IconFont?: React.FC<IconFontProps<string>>;
|
|
21
|
+
/**
|
|
22
|
+
* I18nDropdown组件对应的参数
|
|
23
|
+
*/
|
|
24
|
+
i18nProps?: I18nDropdownProps;
|
|
25
|
+
/**
|
|
26
|
+
* TenantDropdown组件对应的参数
|
|
27
|
+
*/
|
|
28
|
+
tenantProps: TenantDropdownProps;
|
|
29
|
+
/**
|
|
30
|
+
* AvatarDropdown组件对应的参数
|
|
31
|
+
*/
|
|
32
|
+
avatarProps: AvatarDropdownProps;
|
|
33
|
+
/**
|
|
34
|
+
* ThemeSwitch组件对应的参数
|
|
35
|
+
*/
|
|
36
|
+
themeSwitchProps: ThemeSwitchProps;
|
|
37
|
+
/**
|
|
38
|
+
* ProLayout组件对应的参数
|
|
39
|
+
*/
|
|
40
|
+
proLayoutProps?: ProLayoutProps;
|
|
41
|
+
/**
|
|
42
|
+
* 菜单点击返回 (item: MenuDataItem,isOpen?: boolean) => void;
|
|
43
|
+
*/
|
|
44
|
+
onClickMenuItem?: (item: MenuDataItem & {
|
|
45
|
+
isUrl: boolean;
|
|
46
|
+
onClick: () => void;
|
|
47
|
+
}, isOpen?: boolean) => void;
|
|
48
|
+
/**
|
|
49
|
+
* 默认插槽
|
|
50
|
+
*/
|
|
51
|
+
children?: ReactNode;
|
|
52
|
+
}
|
|
53
|
+
declare const Layout: (props: LayoutProps) => JSX.Element;
|
|
54
|
+
export default Layout;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
|
|
4
|
+
import { ProLayout } from "@ant-design/pro-layout";
|
|
5
|
+
import I18nDropdown from "../i18n-dropdown/index";
|
|
6
|
+
import TenantDropdown from "../tenant-dropdown/index";
|
|
7
|
+
import AvatarDropdown from "../avatar-dropdown/index";
|
|
8
|
+
import ThemeSwitch from "../theme-switch/index";
|
|
9
|
+
import styles from "./layout.module.css";
|
|
10
|
+
import { useCallback, useState } from "react";
|
|
11
|
+
import { gql } from "urql";
|
|
12
|
+
import { LocaleType } from "../locale/index";
|
|
13
|
+
import { CollectProviders } from "../index";
|
|
14
|
+
import { query } from "@knockout-js/ice-urql/request";
|
|
15
|
+
import { iceUrqlInstance } from "../index";
|
|
16
|
+
import logo from "./woocoo.png";
|
|
17
|
+
import { OpenWin } from "../icons/index";
|
|
18
|
+
const userMenuListQuery = gql(/* GraphQL */ `query userMenuList($appCode:String!){
|
|
19
|
+
userMenus(appCode: $appCode){
|
|
20
|
+
id,parentID,kind,name,comments,displaySort,icon,route
|
|
21
|
+
}
|
|
22
|
+
}`);
|
|
23
|
+
const Layout = (props)=>{
|
|
24
|
+
const [locale, setLocale] = useState(LocaleType.zhCN);
|
|
25
|
+
// 根据列表格式化成菜单树结构
|
|
26
|
+
const listFormatTree = useCallback((list, parentList)=>{
|
|
27
|
+
if (!parentList) {
|
|
28
|
+
parentList = list.filter((item)=>item.parentId == '0');
|
|
29
|
+
}
|
|
30
|
+
parentList.forEach((pItem)=>{
|
|
31
|
+
let children = list.filter((allItem)=>allItem.parentId == pItem.key);
|
|
32
|
+
if (children && children.length) {
|
|
33
|
+
pItem.children = listFormatTree(list, children);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return parentList;
|
|
37
|
+
}, []);
|
|
38
|
+
return /*#__PURE__*/ _jsx(CollectProviders, {
|
|
39
|
+
locale: locale,
|
|
40
|
+
dark: props.themeSwitchProps.value,
|
|
41
|
+
pathname: props.pathname,
|
|
42
|
+
children: /*#__PURE__*/ _jsx(ProLayout, _object_spread_props(_object_spread({
|
|
43
|
+
className: styles.layout,
|
|
44
|
+
title: "adminx",
|
|
45
|
+
logo: /*#__PURE__*/ _jsx("img", {
|
|
46
|
+
src: logo,
|
|
47
|
+
alt: "logo"
|
|
48
|
+
}),
|
|
49
|
+
layout: "mix",
|
|
50
|
+
fixSiderbar: true,
|
|
51
|
+
menu: {
|
|
52
|
+
locale: true,
|
|
53
|
+
request: async ()=>{
|
|
54
|
+
var _result_data;
|
|
55
|
+
const result = await query(userMenuListQuery, {
|
|
56
|
+
appCode: props.appCode
|
|
57
|
+
}, {
|
|
58
|
+
instanceName: iceUrqlInstance.ucenter
|
|
59
|
+
});
|
|
60
|
+
if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.userMenus.length) {
|
|
61
|
+
const meunList = result.data.userMenus.map((item)=>{
|
|
62
|
+
return {
|
|
63
|
+
key: item.id,
|
|
64
|
+
name: item.name,
|
|
65
|
+
icon: item.icon ? props.IconFont ? /*#__PURE__*/ _jsx(props.IconFont, {
|
|
66
|
+
type: item.icon
|
|
67
|
+
}) : /*#__PURE__*/ _jsx("i", {
|
|
68
|
+
className: item.icon
|
|
69
|
+
}) : undefined,
|
|
70
|
+
parentId: item.parentID,
|
|
71
|
+
path: item.route
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
return listFormatTree(meunList);
|
|
75
|
+
}
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
location: {
|
|
80
|
+
pathname: props.pathname
|
|
81
|
+
},
|
|
82
|
+
actionsRender: ()=>{
|
|
83
|
+
return [
|
|
84
|
+
/*#__PURE__*/ _jsx(I18nDropdown, {
|
|
85
|
+
onChange: (value)=>{
|
|
86
|
+
var _props_i18nProps, _props_i18nProps_onChange;
|
|
87
|
+
setLocale(value);
|
|
88
|
+
(_props_i18nProps = props.i18nProps) === null || _props_i18nProps === void 0 ? void 0 : (_props_i18nProps_onChange = _props_i18nProps.onChange) === null || _props_i18nProps_onChange === void 0 ? void 0 : _props_i18nProps_onChange.call(_props_i18nProps, value);
|
|
89
|
+
}
|
|
90
|
+
}),
|
|
91
|
+
/*#__PURE__*/ _jsx(TenantDropdown, _object_spread({}, props.tenantProps)),
|
|
92
|
+
/*#__PURE__*/ _jsx(AvatarDropdown, _object_spread({}, props.avatarProps)),
|
|
93
|
+
/*#__PURE__*/ _jsx(ThemeSwitch, _object_spread({}, props.themeSwitchProps))
|
|
94
|
+
];
|
|
95
|
+
},
|
|
96
|
+
menuItemRender: (item, defaultDom)=>{
|
|
97
|
+
return item.path ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
98
|
+
children: [
|
|
99
|
+
/*#__PURE__*/ _jsx("a", {
|
|
100
|
+
onClick: ()=>{
|
|
101
|
+
var _props_onClickMenuItem;
|
|
102
|
+
(_props_onClickMenuItem = props.onClickMenuItem) === null || _props_onClickMenuItem === void 0 ? void 0 : _props_onClickMenuItem.call(props, item, false);
|
|
103
|
+
},
|
|
104
|
+
children: defaultDom
|
|
105
|
+
}),
|
|
106
|
+
/*#__PURE__*/ _jsx(OpenWin, {
|
|
107
|
+
className: styles.menuIconPopup,
|
|
108
|
+
onClick: ()=>{
|
|
109
|
+
var _props_onClickMenuItem;
|
|
110
|
+
(_props_onClickMenuItem = props.onClickMenuItem) === null || _props_onClickMenuItem === void 0 ? void 0 : _props_onClickMenuItem.call(props, item, true);
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
]
|
|
114
|
+
}) : defaultDom;
|
|
115
|
+
}
|
|
116
|
+
}, props.proLayoutProps), {
|
|
117
|
+
children: props.children
|
|
118
|
+
}))
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
export default Layout;
|
|
122
|
+
|
|
123
|
+
//# sourceMappingURL=index.js.map
|