@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.
Files changed (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/es2017/components/avatar-dropdown/index.d.ts +25 -0
  4. package/es2017/components/avatar-dropdown/index.js +47 -0
  5. package/es2017/components/avatar-dropdown/index.js.map +1 -0
  6. package/es2017/components/avatar-dropdown/index.module.css +23 -0
  7. package/es2017/components/avatar-dropdown/locale/en_US.d.ts +3 -0
  8. package/es2017/components/avatar-dropdown/locale/en_US.js +6 -0
  9. package/es2017/components/avatar-dropdown/locale/en_US.js.map +1 -0
  10. package/es2017/components/avatar-dropdown/locale/zh_CN.d.ts +3 -0
  11. package/es2017/components/avatar-dropdown/locale/zh_CN.js +6 -0
  12. package/es2017/components/avatar-dropdown/locale/zh_CN.js.map +1 -0
  13. package/es2017/components/collect-providers/index.d.ts +22 -0
  14. package/es2017/components/collect-providers/index.js +38 -0
  15. package/es2017/components/collect-providers/index.js.map +1 -0
  16. package/es2017/components/i18n-dropdown/index.d.ts +10 -0
  17. package/es2017/components/i18n-dropdown/index.js +44 -0
  18. package/es2017/components/i18n-dropdown/index.js.map +1 -0
  19. package/es2017/components/i18n-dropdown/index.module.css +13 -0
  20. package/es2017/components/icons/index.d.ts +2 -0
  21. package/es2017/components/icons/index.js +19 -0
  22. package/es2017/components/icons/index.js.map +1 -0
  23. package/es2017/components/index.d.ts +12 -0
  24. package/es2017/components/index.js +15 -0
  25. package/es2017/components/index.js.map +1 -0
  26. package/es2017/components/keep-alive/index.d.ts +17 -0
  27. package/es2017/components/keep-alive/index.js +29 -0
  28. package/es2017/components/keep-alive/index.js.map +1 -0
  29. package/es2017/components/layout/index.d.ts +54 -0
  30. package/es2017/components/layout/index.js +123 -0
  31. package/es2017/components/layout/index.js.map +1 -0
  32. package/es2017/components/layout/layout.module.css +46 -0
  33. package/es2017/components/layout/woocoo.png +0 -0
  34. package/es2017/components/leave-prompt/index.d.ts +21 -0
  35. package/es2017/components/leave-prompt/index.js +62 -0
  36. package/es2017/components/leave-prompt/index.js.map +1 -0
  37. package/es2017/components/leave-prompt/locale/en_US.d.ts +3 -0
  38. package/es2017/components/leave-prompt/locale/en_US.js +6 -0
  39. package/es2017/components/leave-prompt/locale/en_US.js.map +1 -0
  40. package/es2017/components/leave-prompt/locale/zh_CN.d.ts +3 -0
  41. package/es2017/components/leave-prompt/locale/zh_CN.js +6 -0
  42. package/es2017/components/leave-prompt/locale/zh_CN.js.map +1 -0
  43. package/es2017/components/locale/en_US.d.ts +3 -0
  44. package/es2017/components/locale/en_US.js +14 -0
  45. package/es2017/components/locale/en_US.js.map +1 -0
  46. package/es2017/components/locale/index.d.ts +33 -0
  47. package/es2017/components/locale/index.js +39 -0
  48. package/es2017/components/locale/index.js.map +1 -0
  49. package/es2017/components/locale/zh_CN.d.ts +3 -0
  50. package/es2017/components/locale/zh_CN.js +14 -0
  51. package/es2017/components/locale/zh_CN.js.map +1 -0
  52. package/es2017/components/tenant-dropdown/index.d.ts +18 -0
  53. package/es2017/components/tenant-dropdown/index.js +80 -0
  54. package/es2017/components/tenant-dropdown/index.js.map +1 -0
  55. package/es2017/components/tenant-dropdown/index.module.css +13 -0
  56. package/es2017/components/tenant-dropdown/locale/en_US.d.ts +3 -0
  57. package/es2017/components/tenant-dropdown/locale/en_US.js +8 -0
  58. package/es2017/components/tenant-dropdown/locale/en_US.js.map +1 -0
  59. package/es2017/components/tenant-dropdown/locale/zh_CN.d.ts +3 -0
  60. package/es2017/components/tenant-dropdown/locale/zh_CN.js +8 -0
  61. package/es2017/components/tenant-dropdown/locale/zh_CN.js.map +1 -0
  62. package/es2017/components/theme-switch/index.d.ts +22 -0
  63. package/es2017/components/theme-switch/index.js +21 -0
  64. package/es2017/components/theme-switch/index.js.map +1 -0
  65. package/es2017/components/theme-switch/locale/en_US.d.ts +3 -0
  66. package/es2017/components/theme-switch/locale/en_US.js +7 -0
  67. package/es2017/components/theme-switch/locale/en_US.js.map +1 -0
  68. package/es2017/components/theme-switch/locale/zh_CN.d.ts +3 -0
  69. package/es2017/components/theme-switch/locale/zh_CN.js +7 -0
  70. package/es2017/components/theme-switch/locale/zh_CN.js.map +1 -0
  71. package/es2017/index.d.ts +1 -0
  72. package/es2017/index.js +3 -0
  73. package/es2017/index.js.map +1 -0
  74. package/es2017/typings.d.ts +1 -0
  75. package/esm/components/avatar-dropdown/index.d.ts +25 -0
  76. package/esm/components/avatar-dropdown/index.js +47 -0
  77. package/esm/components/avatar-dropdown/index.js.map +1 -0
  78. package/esm/components/avatar-dropdown/index.module.css +23 -0
  79. package/esm/components/avatar-dropdown/locale/en_US.d.ts +3 -0
  80. package/esm/components/avatar-dropdown/locale/en_US.js +6 -0
  81. package/esm/components/avatar-dropdown/locale/en_US.js.map +1 -0
  82. package/esm/components/avatar-dropdown/locale/zh_CN.d.ts +3 -0
  83. package/esm/components/avatar-dropdown/locale/zh_CN.js +6 -0
  84. package/esm/components/avatar-dropdown/locale/zh_CN.js.map +1 -0
  85. package/esm/components/collect-providers/index.d.ts +22 -0
  86. package/esm/components/collect-providers/index.js +39 -0
  87. package/esm/components/collect-providers/index.js.map +1 -0
  88. package/esm/components/i18n-dropdown/index.d.ts +10 -0
  89. package/esm/components/i18n-dropdown/index.js +46 -0
  90. package/esm/components/i18n-dropdown/index.js.map +1 -0
  91. package/esm/components/i18n-dropdown/index.module.css +13 -0
  92. package/esm/components/icons/index.d.ts +2 -0
  93. package/esm/components/icons/index.js +19 -0
  94. package/esm/components/icons/index.js.map +1 -0
  95. package/esm/components/index.d.ts +12 -0
  96. package/esm/components/index.js +15 -0
  97. package/esm/components/index.js.map +1 -0
  98. package/esm/components/keep-alive/index.d.ts +17 -0
  99. package/esm/components/keep-alive/index.js +29 -0
  100. package/esm/components/keep-alive/index.js.map +1 -0
  101. package/esm/components/layout/index.d.ts +54 -0
  102. package/esm/components/layout/index.js +142 -0
  103. package/esm/components/layout/index.js.map +1 -0
  104. package/esm/components/layout/layout.module.css +46 -0
  105. package/esm/components/layout/woocoo.png +0 -0
  106. package/esm/components/leave-prompt/index.d.ts +21 -0
  107. package/esm/components/leave-prompt/index.js +62 -0
  108. package/esm/components/leave-prompt/index.js.map +1 -0
  109. package/esm/components/leave-prompt/locale/en_US.d.ts +3 -0
  110. package/esm/components/leave-prompt/locale/en_US.js +6 -0
  111. package/esm/components/leave-prompt/locale/en_US.js.map +1 -0
  112. package/esm/components/leave-prompt/locale/zh_CN.d.ts +3 -0
  113. package/esm/components/leave-prompt/locale/zh_CN.js +6 -0
  114. package/esm/components/leave-prompt/locale/zh_CN.js.map +1 -0
  115. package/esm/components/locale/en_US.d.ts +3 -0
  116. package/esm/components/locale/en_US.js +14 -0
  117. package/esm/components/locale/en_US.js.map +1 -0
  118. package/esm/components/locale/index.d.ts +33 -0
  119. package/esm/components/locale/index.js +39 -0
  120. package/esm/components/locale/index.js.map +1 -0
  121. package/esm/components/locale/zh_CN.d.ts +3 -0
  122. package/esm/components/locale/zh_CN.js +14 -0
  123. package/esm/components/locale/zh_CN.js.map +1 -0
  124. package/esm/components/tenant-dropdown/index.d.ts +18 -0
  125. package/esm/components/tenant-dropdown/index.js +100 -0
  126. package/esm/components/tenant-dropdown/index.js.map +1 -0
  127. package/esm/components/tenant-dropdown/index.module.css +13 -0
  128. package/esm/components/tenant-dropdown/locale/en_US.d.ts +3 -0
  129. package/esm/components/tenant-dropdown/locale/en_US.js +8 -0
  130. package/esm/components/tenant-dropdown/locale/en_US.js.map +1 -0
  131. package/esm/components/tenant-dropdown/locale/zh_CN.d.ts +3 -0
  132. package/esm/components/tenant-dropdown/locale/zh_CN.js +8 -0
  133. package/esm/components/tenant-dropdown/locale/zh_CN.js.map +1 -0
  134. package/esm/components/theme-switch/index.d.ts +22 -0
  135. package/esm/components/theme-switch/index.js +21 -0
  136. package/esm/components/theme-switch/index.js.map +1 -0
  137. package/esm/components/theme-switch/locale/en_US.d.ts +3 -0
  138. package/esm/components/theme-switch/locale/en_US.js +7 -0
  139. package/esm/components/theme-switch/locale/en_US.js.map +1 -0
  140. package/esm/components/theme-switch/locale/zh_CN.d.ts +3 -0
  141. package/esm/components/theme-switch/locale/zh_CN.js +7 -0
  142. package/esm/components/theme-switch/locale/zh_CN.js.map +1 -0
  143. package/esm/index.d.ts +1 -0
  144. package/esm/index.js +3 -0
  145. package/esm/index.js.map +1 -0
  146. package/esm/typings.d.ts +1 -0
  147. 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,15 @@
1
+ # @knockout-js/layout
2
+
3
+ 组件功能描述
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ $ npm i @knockout-js/layout --save
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```jsx
14
+ import Layout from '@knockout-js/layout';
15
+ ```
@@ -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,3 @@
1
+ import { AvatarDropdownLocale } from "../index";
2
+ declare const locale: AvatarDropdownLocale;
3
+ export default locale;
@@ -0,0 +1,6 @@
1
+ const locale = {
2
+ logout: 'logout'
3
+ };
4
+ export default locale;
5
+
6
+ //# sourceMappingURL=en_US.js.map
@@ -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,3 @@
1
+ import { AvatarDropdownLocale } from "../index";
2
+ declare const locale: AvatarDropdownLocale;
3
+ export default locale;
@@ -0,0 +1,6 @@
1
+ const locale = {
2
+ logout: '退出'
3
+ };
4
+ export default locale;
5
+
6
+ //# sourceMappingURL=zh_CN.js.map
@@ -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,13 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from "react";
2
+ export declare const OpenWin: (props: JSX.IntrinsicAttributes & SVGProps<SVGSVGElement>) => JSX.Element;
@@ -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