@knockout-js/layout 0.0.3 → 0.0.4-beta.1
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/es2017/components/aggregate-menu/index.d.ts +32 -0
- package/es2017/components/aggregate-menu/index.js +285 -0
- package/es2017/components/aggregate-menu/index.js.map +1 -0
- package/es2017/components/aggregate-menu/index.module.css +168 -0
- package/es2017/components/aggregate-menu/locale/en_US.d.ts +3 -0
- package/es2017/components/aggregate-menu/locale/en_US.js +9 -0
- package/es2017/components/aggregate-menu/locale/en_US.js.map +1 -0
- package/es2017/components/aggregate-menu/locale/zh_CN.d.ts +3 -0
- package/es2017/components/aggregate-menu/locale/zh_CN.js +9 -0
- package/es2017/components/aggregate-menu/locale/zh_CN.js.map +1 -0
- package/es2017/components/collect-providers/index.d.ts +9 -1
- package/es2017/components/collect-providers/index.js +5 -3
- package/es2017/components/collect-providers/index.js.map +1 -1
- package/es2017/components/i18n-dropdown/index.d.ts +1 -1
- package/es2017/components/i18n-dropdown/index.js +2 -2
- package/es2017/components/i18n-dropdown/index.js.map +1 -1
- package/es2017/components/index.d.ts +7 -1
- package/es2017/components/index.js +7 -1
- package/es2017/components/index.js.map +1 -1
- package/es2017/components/layout/index.d.ts +7 -2
- package/es2017/components/layout/index.js +106 -76
- package/es2017/components/layout/index.js.map +1 -1
- package/es2017/components/locale/en_US.js +5 -1
- package/es2017/components/locale/en_US.js.map +1 -1
- package/es2017/components/locale/index.d.ts +4 -15
- package/es2017/components/locale/index.js +3 -23
- package/es2017/components/locale/index.js.map +1 -1
- package/es2017/components/locale/zh_CN.js +5 -1
- package/es2017/components/locale/zh_CN.js.map +1 -1
- package/es2017/components/modal/index.d.ts +18 -0
- package/es2017/components/modal/index.js +89 -0
- package/es2017/components/modal/index.js.map +1 -0
- package/es2017/components/modal/index.module.css +20 -0
- package/es2017/components/provider/index.d.ts +33 -0
- package/es2017/components/provider/index.js +49 -0
- package/es2017/components/provider/index.js.map +1 -0
- package/es2017/components/tenant-dropdown/index.js +1 -1
- package/es2017/components/tenant-dropdown/index.js.map +1 -1
- package/es2017/components/upload-file/index.d.ts +59 -0
- package/es2017/components/upload-file/index.js +15 -0
- package/es2017/components/upload-file/index.js.map +1 -0
- package/es2017/components/upload-file/index.module.css +13 -0
- package/es2017/components/upload-file/locale/en_US.d.ts +3 -0
- package/es2017/components/upload-file/locale/en_US.js +14 -0
- package/es2017/components/upload-file/locale/en_US.js.map +1 -0
- package/es2017/components/upload-file/locale/zh_CN.d.ts +3 -0
- package/es2017/components/upload-file/locale/zh_CN.js +14 -0
- package/es2017/components/upload-file/locale/zh_CN.js.map +1 -0
- package/es2017/components/upload-file/uploadAvatar.d.ts +4 -0
- package/es2017/components/upload-file/uploadAvatar.js +93 -0
- package/es2017/components/upload-file/uploadAvatar.js.map +1 -0
- package/es2017/components/upload-file/uploadMultiple.d.ts +4 -0
- package/es2017/components/upload-file/uploadMultiple.js +155 -0
- package/es2017/components/upload-file/uploadMultiple.js.map +1 -0
- package/es2017/components/upload-file/uploadTemp.d.ts +9 -0
- package/es2017/components/upload-file/uploadTemp.js +167 -0
- package/es2017/components/upload-file/uploadTemp.js.map +1 -0
- package/esm/components/aggregate-menu/index.d.ts +32 -0
- package/esm/components/aggregate-menu/index.js +333 -0
- package/esm/components/aggregate-menu/index.js.map +1 -0
- package/esm/components/aggregate-menu/index.module.css +168 -0
- package/esm/components/aggregate-menu/locale/en_US.d.ts +3 -0
- package/esm/components/aggregate-menu/locale/en_US.js +9 -0
- package/esm/components/aggregate-menu/locale/en_US.js.map +1 -0
- package/esm/components/aggregate-menu/locale/zh_CN.d.ts +3 -0
- package/esm/components/aggregate-menu/locale/zh_CN.js +9 -0
- package/esm/components/aggregate-menu/locale/zh_CN.js.map +1 -0
- package/esm/components/collect-providers/index.d.ts +9 -1
- package/esm/components/collect-providers/index.js +5 -3
- package/esm/components/collect-providers/index.js.map +1 -1
- package/esm/components/i18n-dropdown/index.d.ts +1 -1
- package/esm/components/i18n-dropdown/index.js +2 -2
- package/esm/components/i18n-dropdown/index.js.map +1 -1
- package/esm/components/index.d.ts +7 -1
- package/esm/components/index.js +7 -1
- package/esm/components/index.js.map +1 -1
- package/esm/components/layout/index.d.ts +7 -2
- package/esm/components/layout/index.js +122 -92
- package/esm/components/layout/index.js.map +1 -1
- package/esm/components/locale/en_US.js +5 -1
- package/esm/components/locale/en_US.js.map +1 -1
- package/esm/components/locale/index.d.ts +4 -15
- package/esm/components/locale/index.js +3 -23
- package/esm/components/locale/index.js.map +1 -1
- package/esm/components/locale/zh_CN.js +5 -1
- package/esm/components/locale/zh_CN.js.map +1 -1
- package/esm/components/modal/index.d.ts +18 -0
- package/esm/components/modal/index.js +90 -0
- package/esm/components/modal/index.js.map +1 -0
- package/esm/components/modal/index.module.css +20 -0
- package/esm/components/provider/index.d.ts +33 -0
- package/esm/components/provider/index.js +49 -0
- package/esm/components/provider/index.js.map +1 -0
- package/esm/components/tenant-dropdown/index.js +1 -1
- package/esm/components/tenant-dropdown/index.js.map +1 -1
- package/esm/components/upload-file/index.d.ts +59 -0
- package/esm/components/upload-file/index.js +15 -0
- package/esm/components/upload-file/index.js.map +1 -0
- package/esm/components/upload-file/index.module.css +13 -0
- package/esm/components/upload-file/locale/en_US.d.ts +3 -0
- package/esm/components/upload-file/locale/en_US.js +14 -0
- package/esm/components/upload-file/locale/en_US.js.map +1 -0
- package/esm/components/upload-file/locale/zh_CN.d.ts +3 -0
- package/esm/components/upload-file/locale/zh_CN.js +14 -0
- package/esm/components/upload-file/locale/zh_CN.js.map +1 -0
- package/esm/components/upload-file/uploadAvatar.d.ts +4 -0
- package/esm/components/upload-file/uploadAvatar.js +191 -0
- package/esm/components/upload-file/uploadAvatar.js.map +1 -0
- package/esm/components/upload-file/uploadMultiple.d.ts +4 -0
- package/esm/components/upload-file/uploadMultiple.js +308 -0
- package/esm/components/upload-file/uploadMultiple.js.map +1 -0
- package/esm/components/upload-file/uploadTemp.d.ts +9 -0
- package/esm/components/upload-file/uploadTemp.js +293 -0
- package/esm/components/upload-file/uploadTemp.js.map +1 -0
- package/package.json +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\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 {
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\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 { Context, ProviderProps, LocaleType } from '..';\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<ProviderProps>(Context),\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","Context","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,OAAO,EAAiBC,UAAU,QAAQ,WAAK;AASxD,SAASC,aAAaC,KAAwB,EAAE;IAC9C,MAAMC,MAAMP,WAA0BG,UACpC,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as Provider, Context, type ProviderProps, } from './provider';
|
|
2
2
|
export { default as ThemeSwitch } from './theme-switch';
|
|
3
3
|
export { default as AvatarDropdown } from './avatar-dropdown';
|
|
4
4
|
export { default as KeepAlive } from './keep-alive';
|
|
@@ -6,7 +6,13 @@ export { default as TenantDropdown } from './tenant-dropdown';
|
|
|
6
6
|
export { default as LeavePrompt, useLeavePrompt } from './leave-prompt';
|
|
7
7
|
export { default as I18nDropdown } from './i18n-dropdown';
|
|
8
8
|
export { default as CollectProviders } from './collect-providers';
|
|
9
|
+
export { LocaleType } from './provider';
|
|
9
10
|
export { default as Layout } from './layout';
|
|
11
|
+
export { default as Modal, type ModalProps } from './modal';
|
|
12
|
+
export { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';
|
|
13
|
+
export { default as UploadAvatar } from './upload-file/uploadAvatar';
|
|
14
|
+
export { default as UploadMultiple } from './upload-file/uploadMultiple';
|
|
15
|
+
export { default as UploadTemp } from './upload-file/uploadTemp';
|
|
10
16
|
export declare enum iceUrqlInstance {
|
|
11
17
|
ucenter = "ucenter"
|
|
12
18
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as Provider, Context } from "./provider/index";
|
|
2
2
|
export { default as ThemeSwitch } from "./theme-switch/index";
|
|
3
3
|
export { default as AvatarDropdown } from "./avatar-dropdown/index";
|
|
4
4
|
export { default as KeepAlive } from "./keep-alive/index";
|
|
@@ -6,7 +6,13 @@ export { default as TenantDropdown } from "./tenant-dropdown/index";
|
|
|
6
6
|
export { default as LeavePrompt, useLeavePrompt } from "./leave-prompt/index";
|
|
7
7
|
export { default as I18nDropdown } from "./i18n-dropdown/index";
|
|
8
8
|
export { default as CollectProviders } from "./collect-providers/index";
|
|
9
|
+
export { LocaleType } from "./provider/index";
|
|
9
10
|
export { default as Layout } from "./layout/index";
|
|
11
|
+
export { default as Modal } from "./modal/index";
|
|
12
|
+
export { default as AggregateMenu } from "./aggregate-menu/index";
|
|
13
|
+
export { default as UploadAvatar } from "./upload-file/uploadAvatar";
|
|
14
|
+
export { default as UploadMultiple } from "./upload-file/uploadMultiple";
|
|
15
|
+
export { default as UploadTemp } from "./upload-file/uploadTemp";
|
|
10
16
|
export var iceUrqlInstance;
|
|
11
17
|
(function(iceUrqlInstance) {
|
|
12
18
|
iceUrqlInstance["ucenter"] = "ucenter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as Provider, Context, type ProviderProps, } from './provider';\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 { LocaleType } from './provider';\r\nexport { default as Layout } from './layout';\r\nexport { default as Modal, type ModalProps } from './modal';\r\nexport { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';\r\nexport { default as UploadAvatar } from './upload-file/uploadAvatar';\r\nexport { default as UploadMultiple } from './upload-file/uploadMultiple';\r\nexport { default as UploadTemp } from './upload-file/uploadTemp';\r\n\r\nexport enum iceUrqlInstance {\r\n ucenter = \"ucenter\"\r\n}\r\n"],"names":["default","Provider","Context","ThemeSwitch","AvatarDropdown","KeepAlive","TenantDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","LocaleType","Layout","Modal","AggregateMenu","UploadAvatar","UploadMultiple","UploadTemp","iceUrqlInstance","ucenter"],"mappings":"AAAA,SAASA,WAAWC,QAAQ,EAAEC,OAAO,QAA6B,mBAAa;AAC/E,SAASF,WAAWG,WAAW,QAAQ,uBAAiB;AACxD,SAASH,WAAWI,cAAc,QAAQ,0BAAoB;AAC9D,SAASJ,WAAWK,SAAS,QAAQ,qBAAe;AACpD,SAASL,WAAWM,cAAc,QAAQ,0BAAoB;AAC9D,SAASN,WAAWO,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAASR,WAAWS,YAAY,QAAQ,wBAAkB;AAC1D,SAAST,WAAWU,gBAAgB,QAAQ,4BAAsB;AAClE,SAASC,UAAU,QAAQ,mBAAa;AACxC,SAASX,WAAWY,MAAM,QAAQ,iBAAW;AAC7C,SAASZ,WAAWa,KAAK,QAAyB,gBAAU;AAC5D,SAASb,WAAWc,aAAa,QAAsC,yBAAmB;AAC1F,SAASd,WAAWe,YAAY,QAAQ,6BAA6B;AACrE,SAASf,WAAWgB,cAAc,QAAQ,+BAA+B;AACzE,SAAShB,WAAWiB,UAAU,QAAQ,2BAA2B;WAE1D;UAAKC,eAAe;IAAfA,gBACVC,aAAAA;GADUD,oBAAAA"}
|
|
@@ -3,8 +3,9 @@ import { I18nDropdownProps } from '../i18n-dropdown';
|
|
|
3
3
|
import { TenantDropdownProps } from '../tenant-dropdown';
|
|
4
4
|
import { AvatarDropdownProps } from '../avatar-dropdown';
|
|
5
5
|
import { ThemeSwitchProps } from '../theme-switch';
|
|
6
|
-
import { ReactNode } from 'react';
|
|
6
|
+
import { ReactNode, FC } from 'react';
|
|
7
7
|
import { IconFontProps } from '@ant-design/icons/lib/components/IconFont';
|
|
8
|
+
import { AggregateMenuProps } from '../aggregate-menu';
|
|
8
9
|
export interface LayoutProps {
|
|
9
10
|
/**
|
|
10
11
|
* 应用code
|
|
@@ -17,7 +18,11 @@ export interface LayoutProps {
|
|
|
17
18
|
/**
|
|
18
19
|
* 菜单启用iconfont
|
|
19
20
|
*/
|
|
20
|
-
IconFont?:
|
|
21
|
+
IconFont?: FC<IconFontProps<string>>;
|
|
22
|
+
/**
|
|
23
|
+
* 聚合菜单
|
|
24
|
+
*/
|
|
25
|
+
aggregateMenuProps?: AggregateMenuProps;
|
|
21
26
|
/**
|
|
22
27
|
* I18nDropdown组件对应的参数
|
|
23
28
|
*/
|
|
@@ -8,12 +8,13 @@ import AvatarDropdown from "../avatar-dropdown/index";
|
|
|
8
8
|
import ThemeSwitch from "../theme-switch/index";
|
|
9
9
|
import styles from "./layout.module.css";
|
|
10
10
|
import { useCallback, useState } from "react";
|
|
11
|
-
import { LocaleType } from "../
|
|
12
|
-
import { CollectProviders } from "../index";
|
|
11
|
+
import { CollectProviders, LocaleType } from "../index";
|
|
13
12
|
import { gql, query } from "@knockout-js/ice-urql/request";
|
|
14
13
|
import { iceUrqlInstance } from "../index";
|
|
15
14
|
import { OpenWin } from "../icons/index";
|
|
16
15
|
import { logoBase64 } from "./logo";
|
|
16
|
+
import AggregateMenu from "../aggregate-menu/index";
|
|
17
|
+
import { BarsOutlined } from "@ant-design/icons";
|
|
17
18
|
const userMenuListQuery = gql(/* GraphQL */ `query userMenuList($appCode:String!){
|
|
18
19
|
userMenus(appCode: $appCode){
|
|
19
20
|
id,parentID,kind,name,comments,displaySort,icon,route
|
|
@@ -30,87 +31,116 @@ const Layout = (props)=>{
|
|
|
30
31
|
});
|
|
31
32
|
return parentList;
|
|
32
33
|
}, []);
|
|
33
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/ _jsxs(CollectProviders, {
|
|
34
35
|
locale: locale,
|
|
36
|
+
appCode: props.appCode,
|
|
37
|
+
tenantId: props.tenantProps.value,
|
|
35
38
|
dark: props.themeSwitchProps.value,
|
|
36
39
|
pathname: props.pathname,
|
|
37
|
-
children:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ _jsx(ProLayout, _object_spread_props(_object_spread({
|
|
42
|
+
className: styles.layout,
|
|
43
|
+
headerTitleRender: (logo, title)=>{
|
|
44
|
+
var _props_aggregateMenuProps;
|
|
45
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
46
|
+
children: [
|
|
47
|
+
typeof ((_props_aggregateMenuProps = props.aggregateMenuProps) === null || _props_aggregateMenuProps === void 0 ? void 0 : _props_aggregateMenuProps.open) === 'boolean' ? /*#__PURE__*/ _jsx(BarsOutlined, {
|
|
48
|
+
rev: undefined,
|
|
49
|
+
style: {
|
|
50
|
+
fontSize: 20,
|
|
51
|
+
marginRight: 10
|
|
52
|
+
},
|
|
53
|
+
onClick: ()=>{
|
|
54
|
+
var _props_aggregateMenuProps, _props_aggregateMenuProps_onChangeOpen;
|
|
55
|
+
(_props_aggregateMenuProps = props.aggregateMenuProps) === null || _props_aggregateMenuProps === void 0 ? void 0 : (_props_aggregateMenuProps_onChangeOpen = _props_aggregateMenuProps.onChangeOpen) === null || _props_aggregateMenuProps_onChangeOpen === void 0 ? void 0 : _props_aggregateMenuProps_onChangeOpen.call(_props_aggregateMenuProps, true);
|
|
56
|
+
}
|
|
57
|
+
}) : /*#__PURE__*/ _jsx(_Fragment, {}),
|
|
58
|
+
logo,
|
|
59
|
+
title
|
|
60
|
+
]
|
|
54
61
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
},
|
|
63
|
+
title: "adminx",
|
|
64
|
+
logo: /*#__PURE__*/ _jsx("img", {
|
|
65
|
+
src: logoBase64,
|
|
66
|
+
alt: "logo"
|
|
67
|
+
}),
|
|
68
|
+
layout: "mix",
|
|
69
|
+
fixSiderbar: true,
|
|
70
|
+
suppressSiderWhenMenuEmpty: true,
|
|
71
|
+
menu: {
|
|
72
|
+
locale: true,
|
|
73
|
+
request: async ()=>{
|
|
74
|
+
var _result_data;
|
|
75
|
+
const result = await query(userMenuListQuery, {
|
|
76
|
+
appCode: props.appCode
|
|
77
|
+
}, {
|
|
78
|
+
instanceName: iceUrqlInstance.ucenter
|
|
68
79
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.userMenus.length) {
|
|
81
|
+
const meunList = result.data.userMenus.sort((d1, d2)=>{
|
|
82
|
+
const d1Sort = d1.displaySort || 0, d2Sort = d2.displaySort || 0;
|
|
83
|
+
return d1.parentID < d2.parentID ? -1 : d1.parentID > d2.parentID ? 1 : d1Sort < d2Sort ? -1 : d1Sort > d2Sort ? 1 : 0;
|
|
84
|
+
}).map((item)=>{
|
|
85
|
+
return {
|
|
86
|
+
key: item.id,
|
|
87
|
+
name: item.name,
|
|
88
|
+
icon: item.icon ? props.IconFont ? /*#__PURE__*/ _jsx(props.IconFont, {
|
|
89
|
+
type: item.icon
|
|
90
|
+
}) : /*#__PURE__*/ _jsx("i", {
|
|
91
|
+
className: item.icon
|
|
92
|
+
}) : undefined,
|
|
93
|
+
parentId: item.parentID,
|
|
94
|
+
path: item.route
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
return listFormatTree(meunList);
|
|
84
98
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
(
|
|
98
|
-
},
|
|
99
|
-
children: defaultDom
|
|
100
|
-
}),
|
|
101
|
-
/*#__PURE__*/ _jsx(OpenWin, {
|
|
102
|
-
className: styles.menuIconPopup,
|
|
103
|
-
onClick: ()=>{
|
|
104
|
-
var _props_onClickMenuItem;
|
|
105
|
-
(_props_onClickMenuItem = props.onClickMenuItem) === null || _props_onClickMenuItem === void 0 ? void 0 : _props_onClickMenuItem.call(props, item, true);
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
location: {
|
|
103
|
+
pathname: props.pathname
|
|
104
|
+
},
|
|
105
|
+
actionsRender: ()=>{
|
|
106
|
+
return [
|
|
107
|
+
/*#__PURE__*/ _jsx(I18nDropdown, {
|
|
108
|
+
onChange: (value)=>{
|
|
109
|
+
var _props_i18nProps, _props_i18nProps_onChange;
|
|
110
|
+
setLocale(value);
|
|
111
|
+
(_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);
|
|
106
112
|
}
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
}),
|
|
114
|
+
/*#__PURE__*/ _jsx(TenantDropdown, _object_spread({}, props.tenantProps)),
|
|
115
|
+
/*#__PURE__*/ _jsx(AvatarDropdown, _object_spread({}, props.avatarProps)),
|
|
116
|
+
/*#__PURE__*/ _jsx(ThemeSwitch, _object_spread({}, props.themeSwitchProps))
|
|
117
|
+
];
|
|
118
|
+
},
|
|
119
|
+
menuItemRender: (item, defaultDom)=>{
|
|
120
|
+
return item.path ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
121
|
+
children: [
|
|
122
|
+
/*#__PURE__*/ _jsx("a", {
|
|
123
|
+
onClick: ()=>{
|
|
124
|
+
var _props_onClickMenuItem;
|
|
125
|
+
(_props_onClickMenuItem = props.onClickMenuItem) === null || _props_onClickMenuItem === void 0 ? void 0 : _props_onClickMenuItem.call(props, item, false);
|
|
126
|
+
},
|
|
127
|
+
children: defaultDom
|
|
128
|
+
}),
|
|
129
|
+
/*#__PURE__*/ _jsx(OpenWin, {
|
|
130
|
+
className: styles.menuIconPopup,
|
|
131
|
+
onClick: ()=>{
|
|
132
|
+
var _props_onClickMenuItem;
|
|
133
|
+
(_props_onClickMenuItem = props.onClickMenuItem) === null || _props_onClickMenuItem === void 0 ? void 0 : _props_onClickMenuItem.call(props, item, true);
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
}) : defaultDom;
|
|
138
|
+
}
|
|
139
|
+
}, props.proLayoutProps), {
|
|
140
|
+
children: props.children
|
|
141
|
+
})),
|
|
142
|
+
/*#__PURE__*/ _jsx(AggregateMenu, _object_spread({}, props.aggregateMenuProps))
|
|
143
|
+
]
|
|
114
144
|
});
|
|
115
145
|
};
|
|
116
146
|
export default Layout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\layout\\index.tsx"],"sourcesContent":["import { MenuDataItem, ProLayout, ProLayoutProps } from '@ant-design/pro-layout';\r\nimport I18nDropdown, { I18nDropdownProps } from '../i18n-dropdown';\r\nimport TenantDropdown, { TenantDropdownProps } from '../tenant-dropdown';\r\nimport AvatarDropdown, { AvatarDropdownProps } from '../avatar-dropdown';\r\nimport ThemeSwitch, { ThemeSwitchProps } from '../theme-switch';\r\nimport styles from './layout.module.css';\r\nimport { ReactNode, useCallback, useState } from 'react';\r\nimport { UserMenuListQuery, UserMenuListQueryVariables } from '@knockout-js/api';\r\nimport { LocaleType } from '../locale';\r\nimport { CollectProviders } from '..';\r\nimport { gql, query } from '@knockout-js/ice-urql/request';\r\nimport { iceUrqlInstance } from '..';\r\nimport { OpenWin } from '../icons';\r\nimport { IconFontProps } from '@ant-design/icons/lib/components/IconFont';\r\nimport { logoBase64 } from './logo';\r\n\r\nexport interface LayoutProps {\r\n /**\r\n * 应用code\r\n */\r\n appCode: string;\r\n /**\r\n * 传递动态的 location.pathname\r\n */\r\n pathname: string;\r\n /**\r\n * 菜单启用iconfont\r\n */\r\n IconFont?: React.FC<IconFontProps<string>>;\r\n /**\r\n * I18nDropdown组件对应的参数\r\n */\r\n i18nProps?: I18nDropdownProps;\r\n /**\r\n * TenantDropdown组件对应的参数\r\n */\r\n tenantProps: TenantDropdownProps;\r\n /**\r\n * AvatarDropdown组件对应的参数\r\n */\r\n avatarProps: AvatarDropdownProps;\r\n /**\r\n * ThemeSwitch组件对应的参数\r\n */\r\n themeSwitchProps: ThemeSwitchProps;\r\n /**\r\n * ProLayout组件对应的参数\r\n */\r\n proLayoutProps?: ProLayoutProps;\r\n /**\r\n * 菜单点击返回 (item: MenuDataItem,isOpen?: boolean) => void;\r\n */\r\n onClickMenuItem?: (item: MenuDataItem & {\r\n isUrl: boolean;\r\n onClick: () => void;\r\n },\r\n isOpen?: boolean) => void;\r\n /**\r\n * 默认插槽\r\n */\r\n children?: ReactNode;\r\n\r\n}\r\n\r\nconst userMenuListQuery = gql(/* GraphQL */`query userMenuList($appCode:String!){\r\n userMenus(appCode: $appCode){\r\n id,parentID,kind,name,comments,displaySort,icon,route\r\n }\r\n}`);\r\n\r\n\r\nconst Layout = (props: LayoutProps) => {\r\n\r\n const [locale, setLocale] = useState(LocaleType.zhCN);\r\n\r\n // 根据列表格式化成菜单树结构\r\n const listFormatTree = useCallback((list: MenuDataItem[], parentList?: MenuDataItem[]) => {\r\n if (!parentList) {\r\n parentList = list.filter(item => item.parentId == '0');\r\n }\r\n parentList.forEach((pItem) => {\r\n let children = list.filter(\r\n (allItem) => allItem.parentId == pItem.key,\r\n );\r\n if (children && children.length) {\r\n pItem.children = listFormatTree(list, children);\r\n }\r\n });\r\n return parentList;\r\n }, [])\r\n\r\n return (\r\n <CollectProviders\r\n locale={locale}\r\n dark={props.themeSwitchProps.value}\r\n pathname={props.pathname}\r\n >\r\n <ProLayout\r\n className={styles.layout}\r\n title='adminx'\r\n logo={<img src={logoBase64} alt=\"logo\" />}\r\n layout=\"mix\"\r\n fixSiderbar\r\n menu={{\r\n locale: true,\r\n request: async () => {\r\n const result = await query<UserMenuListQuery, UserMenuListQueryVariables>(userMenuListQuery, {\r\n appCode: props.appCode\r\n }, { instanceName: iceUrqlInstance.ucenter });\r\n if (result.data?.userMenus.length) {\r\n const meunList = result.data.userMenus.map(item => {\r\n return {\r\n key: item.id,\r\n name: item.name,\r\n icon: item.icon ? props.IconFont ? <props.IconFont type={item.icon} /> : <i className={item.icon} /> : undefined,\r\n parentId: item.parentID,\r\n path: item.route,\r\n } as MenuDataItem\r\n })\r\n\r\n return listFormatTree(meunList);\r\n }\r\n return [];\r\n },\r\n }}\r\n location={{\r\n pathname: props.pathname\r\n }}\r\n actionsRender={() => [\r\n <I18nDropdown onChange={(value) => {\r\n setLocale(value);\r\n props.i18nProps?.onChange?.(value)\r\n }} />,\r\n <TenantDropdown {...props.tenantProps} />,\r\n <AvatarDropdown {...props.avatarProps} />,\r\n <ThemeSwitch {...props.themeSwitchProps} />,\r\n ]}\r\n menuItemRender={(item, defaultDom) => (item.path ? <>\r\n <a\r\n onClick={() => {\r\n props.onClickMenuItem?.(item, false)\r\n }}\r\n >{defaultDom}</a>\r\n <OpenWin\r\n className={styles.menuIconPopup}\r\n onClick={() => {\r\n props.onClickMenuItem?.(item, true)\r\n }}\r\n />\r\n </>\r\n : defaultDom)}\r\n {...props.proLayoutProps}\r\n >\r\n {props.children}\r\n </ProLayout>\r\n </CollectProviders>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["ProLayout","I18nDropdown","TenantDropdown","AvatarDropdown","ThemeSwitch","styles","useCallback","useState","LocaleType","CollectProviders","gql","query","iceUrqlInstance","OpenWin","logoBase64","userMenuListQuery","Layout","props","locale","setLocale","zhCN","listFormatTree","list","parentList","filter","item","parentId","forEach","pItem","children","allItem","key","length","dark","themeSwitchProps","value","pathname","className","layout","title","logo","img","src","alt","fixSiderbar","menu","request","result","appCode","instanceName","ucenter","data","userMenus","meunList","map","id","name","icon","IconFont","type","i","undefined","parentID","path","route","location","actionsRender","onChange","i18nProps","tenantProps","avatarProps","menuItemRender","defaultDom","a","onClick","onClickMenuItem","menuIconPopup","proLayoutProps"],"mappings":";;;AAAA,SAAuBA,SAAS,QAAwB,yBAAyB;AACjF,OAAOC,kBAAyC,yBAAmB;AACnE,OAAOC,oBAA6C,2BAAqB;AACzE,OAAOC,oBAA6C,2BAAqB;AACzE,OAAOC,iBAAuC,wBAAkB;AAChE,OAAOC,YAAY,sBAAsB;AACzC,SAAoBC,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAEzD,SAASC,UAAU,QAAQ,kBAAY;AACvC,SAASC,gBAAgB,QAAQ,WAAK;AACtC,SAASC,GAAG,EAAEC,KAAK,QAAQ,gCAAgC;AAC3D,SAASC,eAAe,QAAQ,WAAK;AACrC,SAASC,OAAO,QAAQ,iBAAW;AAEnC,SAASC,UAAU,QAAQ,SAAS;AAkDpC,MAAMC,oBAAoBL,IAAI,WAAW,GAAE,CAAC;;;;CAI3C,CAAC;AAGF,MAAMM,SAAS,CAACC,QAAuB;IAErC,MAAM,CAACC,QAAQC,UAAU,GAAGZ,SAASC,WAAWY,IAAI;IAEpD,gBAAgB;IAChB,MAAMC,iBAAiBf,YAAY,CAACgB,MAAsBC,aAAgC;QACxF,IAAI,CAACA,YACHA,aAAaD,KAAKE,MAAM,CAACC,CAAAA,OAAQA,KAAKC,QAAQ,IAAI;QAEpDH,WAAWI,OAAO,CAAC,CAACC,QAAU;YAC5B,IAAIC,WAAWP,KAAKE,MAAM,CACxB,CAACM,UAAYA,QAAQJ,QAAQ,IAAIE,MAAMG,GAAG;YAE5C,IAAIF,YAAYA,SAASG,MAAM,EAC7BJ,MAAMC,QAAQ,GAAGR,eAAeC,MAAMO;QAE1C;QACA,OAAON;IACT,GAAG,EAAE;IAEL,qBACE,KAACd;QACCS,QAAQA;QACRe,MAAMhB,MAAMiB,gBAAgB,CAACC,KAAK;QAClCC,UAAUnB,MAAMmB,QAAQ;kBAExB,cAAA,KAACpC;YACCqC,WAAWhC,OAAOiC,MAAM;YACxBC,OAAM;YACNC,oBAAM,KAACC;gBAAIC,KAAK5B;gBAAY6B,KAAI;;YAChCL,QAAO;YACPM,WAAW;YACXC,MAAM;gBACJ3B,QAAQ,IAAI;gBACZ4B,SAAS,UAAY;wBAIfC;oBAHJ,MAAMA,SAAS,MAAMpC,MAAqDI,mBAAmB;wBAC3FiC,SAAS/B,MAAM+B,OAAO;oBACxB,GAAG;wBAAEC,cAAcrC,gBAAgBsC,OAAO;oBAAC;oBAC3C,IAAIH,CAAAA,eAAAA,OAAOI,IAAI,cAAXJ,0BAAAA,KAAAA,IAAAA,aAAaK,UAAUpB,MAAM,EAAE;wBACjC,MAAMqB,WAAWN,OAAOI,IAAI,CAACC,SAAS,CAACE,GAAG,CAAC7B,CAAAA,OAAQ;4BACjD,OAAO;gCACLM,KAAKN,KAAK8B,EAAE;gCACZC,MAAM/B,KAAK+B,IAAI;gCACfC,MAAMhC,KAAKgC,IAAI,GAAGxC,MAAMyC,QAAQ,iBAAG,KAACzC,MAAMyC,QAAQ;oCAACC,MAAMlC,KAAKgC,IAAI;mDAAO,KAACG;oCAAEvB,WAAWZ,KAAKgC,IAAI;kCAAI,GAAGI,SAAS;gCAChHnC,UAAUD,KAAKqC,QAAQ;gCACvBC,MAAMtC,KAAKuC,KAAK;4BAClB;wBACF;wBAEA,OAAO3C,eAAegC;oBACxB,CAAC;oBACD,OAAO,EAAE;gBACX;YACF;YACAY,UAAU;gBACR7B,UAAUnB,MAAMmB,QAAQ;YAC1B;YACA8B,eAAe;gBAAM,OAAA;kCACnB,KAACjE;wBAAakE,UAAU,CAAChC,QAAU;gCAEjClB;4BADAE,UAAUgB;4BACVlB,CAAAA,mBAAAA,MAAMmD,SAAS,cAAfnD,8BAAAA,KAAAA,IAAAA,6BAAAA,iBAAiBkD,6DAAjBlD,KAAAA,IAAAA,0BAAAA,KAAAA,kBAA4BkB;wBAC9B;;kCACA,KAACjC,mCAAmBe,MAAMoD,WAAW;kCACrC,KAAClE,mCAAmBc,MAAMqD,WAAW;kCACrC,KAAClE,gCAAgBa,MAAMiB,gBAAgB;iBACxC;;YACDqC,gBAAgB,CAAC9C,MAAM+C;gBAAgB/C,OAAAA,KAAKsC,IAAI,iBAAG;;sCACjD,KAACU;4BACCC,SAAS,IAAM;oCACbzD;gCAAAA,CAAAA,yBAAAA,MAAM0D,eAAe,cAArB1D,oCAAAA,KAAAA,IAAAA,uBAAAA,KAAAA,OAAwBQ,MAAM,KAAK;4BACrC;sCACA+C;;sCACF,KAAC3D;4BACCwB,WAAWhC,OAAOuE,aAAa;4BAC/BF,SAAS,IAAM;oCACbzD;gCAAAA,CAAAA,yBAAAA,MAAM0D,eAAe,cAArB1D,oCAAAA,KAAAA,IAAAA,uBAAAA,KAAAA,OAAwBQ,MAAM,IAAI;4BACpC;;;qBAGA+C,UAAU;;WACVvD,MAAM4D,cAAc;sBAEvB5D,MAAMY,QAAQ;;;AAIvB;AAEA,eAAeb,OAAM"}
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\layout\\index.tsx"],"sourcesContent":["import { MenuDataItem, ProLayout, ProLayoutProps } from '@ant-design/pro-layout';\r\nimport I18nDropdown, { I18nDropdownProps } from '../i18n-dropdown';\r\nimport TenantDropdown, { TenantDropdownProps } from '../tenant-dropdown';\r\nimport AvatarDropdown, { AvatarDropdownProps } from '../avatar-dropdown';\r\nimport ThemeSwitch, { ThemeSwitchProps } from '../theme-switch';\r\nimport styles from './layout.module.css';\r\nimport { ReactNode, FC, useCallback, useState } from 'react';\r\nimport { UserMenuListQuery, UserMenuListQueryVariables } from '@knockout-js/api';\r\nimport { CollectProviders, LocaleType } from '..';\r\nimport { gql, query } from '@knockout-js/ice-urql/request';\r\nimport { iceUrqlInstance } from '..';\r\nimport { OpenWin } from '../icons';\r\nimport { IconFontProps } from '@ant-design/icons/lib/components/IconFont';\r\nimport { logoBase64 } from './logo';\r\nimport AggregateMenu, { AggregateMenuProps } from '../aggregate-menu';\r\nimport { BarsOutlined } from '@ant-design/icons';\r\n\r\nexport interface LayoutProps {\r\n /**\r\n * 应用code\r\n */\r\n appCode: string;\r\n /**\r\n * 传递动态的 location.pathname\r\n */\r\n pathname: string;\r\n /**\r\n * 菜单启用iconfont\r\n */\r\n IconFont?: FC<IconFontProps<string>>;\r\n /**\r\n * 聚合菜单\r\n */\r\n aggregateMenuProps?: AggregateMenuProps;\r\n /**\r\n * I18nDropdown组件对应的参数\r\n */\r\n i18nProps?: I18nDropdownProps;\r\n /**\r\n * TenantDropdown组件对应的参数\r\n */\r\n tenantProps: TenantDropdownProps;\r\n /**\r\n * AvatarDropdown组件对应的参数\r\n */\r\n avatarProps: AvatarDropdownProps;\r\n /**\r\n * ThemeSwitch组件对应的参数\r\n */\r\n themeSwitchProps: ThemeSwitchProps;\r\n /**\r\n * ProLayout组件对应的参数\r\n */\r\n proLayoutProps?: ProLayoutProps;\r\n /**\r\n * 菜单点击返回 (item: MenuDataItem,isOpen?: boolean) => void;\r\n */\r\n onClickMenuItem?: (\r\n item: MenuDataItem & {\r\n isUrl: boolean;\r\n onClick: () => void;\r\n },\r\n isOpen?: boolean\r\n ) => void;\r\n /**\r\n * 默认插槽\r\n */\r\n children?: ReactNode;\r\n\r\n}\r\n\r\nconst userMenuListQuery = gql(/* GraphQL */`query userMenuList($appCode:String!){\r\n userMenus(appCode: $appCode){\r\n id,parentID,kind,name,comments,displaySort,icon,route\r\n }\r\n}`);\r\n\r\n\r\nconst Layout = (props: LayoutProps) => {\r\n\r\n const [locale, setLocale] = useState(LocaleType.zhCN);\r\n\r\n // 根据列表格式化成菜单树结构\r\n const listFormatTree = useCallback((list: MenuDataItem[], parentList?: MenuDataItem[]) => {\r\n if (!parentList) {\r\n parentList = list.filter(item => item.parentId == '0');\r\n }\r\n parentList.forEach((pItem) => {\r\n let children = list.filter(\r\n (allItem) => allItem.parentId == pItem.key,\r\n );\r\n if (children && children.length) {\r\n pItem.children = listFormatTree(list, children);\r\n }\r\n });\r\n return parentList;\r\n }, [])\r\n\r\n\r\n\r\n return (\r\n <CollectProviders\r\n locale={locale}\r\n appCode={props.appCode}\r\n tenantId={props.tenantProps.value}\r\n dark={props.themeSwitchProps.value}\r\n pathname={props.pathname}\r\n >\r\n <ProLayout\r\n className={styles.layout}\r\n headerTitleRender={(logo, title) => {\r\n return <>\r\n {typeof props.aggregateMenuProps?.open === 'boolean' ? <BarsOutlined\r\n rev={undefined}\r\n style={{ fontSize: 20, marginRight: 10 }}\r\n onClick={() => {\r\n props.aggregateMenuProps?.onChangeOpen?.(true);\r\n }}\r\n /> : <></>}\r\n {logo}\r\n {title}\r\n </>\r\n }}\r\n title='adminx'\r\n logo={<img src={logoBase64} alt=\"logo\" />}\r\n layout=\"mix\"\r\n fixSiderbar\r\n suppressSiderWhenMenuEmpty\r\n menu={{\r\n locale: true,\r\n request: async () => {\r\n const result = await query<UserMenuListQuery, UserMenuListQueryVariables>(userMenuListQuery, {\r\n appCode: props.appCode\r\n }, { instanceName: iceUrqlInstance.ucenter });\r\n if (result.data?.userMenus.length) {\r\n const meunList = result.data.userMenus.sort((d1, d2) => {\r\n const d1Sort = d1.displaySort || 0, d2Sort = d2.displaySort || 0;\r\n return d1.parentID < d2.parentID ? -1 : d1.parentID > d2.parentID ? 1 : d1Sort < d2Sort ? -1 : d1Sort > d2Sort ? 1 : 0;\r\n }).map(item => {\r\n return {\r\n key: item.id,\r\n name: item.name,\r\n icon: item.icon ? props.IconFont ? <props.IconFont type={item.icon} /> : <i className={item.icon} /> : undefined,\r\n parentId: item.parentID,\r\n path: item.route,\r\n } as MenuDataItem\r\n })\r\n\r\n return listFormatTree(meunList);\r\n }\r\n return [];\r\n },\r\n }}\r\n location={{\r\n pathname: props.pathname\r\n }}\r\n actionsRender={() => [\r\n <I18nDropdown onChange={(value) => {\r\n setLocale(value);\r\n props.i18nProps?.onChange?.(value)\r\n }} />,\r\n <TenantDropdown {...props.tenantProps} />,\r\n <AvatarDropdown {...props.avatarProps} />,\r\n <ThemeSwitch {...props.themeSwitchProps} />,\r\n ]}\r\n menuItemRender={(item, defaultDom) => (item.path ? <>\r\n <a\r\n onClick={() => {\r\n props.onClickMenuItem?.(item, false)\r\n }}\r\n >{defaultDom}</a>\r\n <OpenWin\r\n className={styles.menuIconPopup}\r\n onClick={() => {\r\n props.onClickMenuItem?.(item, true)\r\n }}\r\n />\r\n </>\r\n : defaultDom)}\r\n {...props.proLayoutProps}\r\n >\r\n {props.children}\r\n </ProLayout>\r\n <AggregateMenu\r\n {...props.aggregateMenuProps}\r\n />\r\n </CollectProviders>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["ProLayout","I18nDropdown","TenantDropdown","AvatarDropdown","ThemeSwitch","styles","useCallback","useState","CollectProviders","LocaleType","gql","query","iceUrqlInstance","OpenWin","logoBase64","AggregateMenu","BarsOutlined","userMenuListQuery","Layout","props","locale","setLocale","zhCN","listFormatTree","list","parentList","filter","item","parentId","forEach","pItem","children","allItem","key","length","appCode","tenantId","tenantProps","value","dark","themeSwitchProps","pathname","className","layout","headerTitleRender","logo","title","aggregateMenuProps","open","rev","undefined","style","fontSize","marginRight","onClick","onChangeOpen","img","src","alt","fixSiderbar","suppressSiderWhenMenuEmpty","menu","request","result","instanceName","ucenter","data","userMenus","meunList","sort","d1","d2","d1Sort","displaySort","d2Sort","parentID","map","id","name","icon","IconFont","type","i","path","route","location","actionsRender","onChange","i18nProps","avatarProps","menuItemRender","defaultDom","a","onClickMenuItem","menuIconPopup","proLayoutProps"],"mappings":"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"}
|
|
@@ -2,12 +2,16 @@ import ThemeSwitch from "../theme-switch/locale/en_US";
|
|
|
2
2
|
import LeavePrompt from "../leave-prompt/locale/en_US";
|
|
3
3
|
import AvatarDropdown from "../avatar-dropdown/locale/en_US";
|
|
4
4
|
import TenantDropdown from "../tenant-dropdown/locale/en_US";
|
|
5
|
+
import AggregateMenu from "../aggregate-menu/locale/en_US";
|
|
6
|
+
import UploadFile from "../upload-file/locale/en_US";
|
|
5
7
|
const localeValues = {
|
|
6
8
|
locale: 'en-us',
|
|
7
9
|
ThemeSwitch,
|
|
8
10
|
LeavePrompt,
|
|
9
11
|
AvatarDropdown,
|
|
10
|
-
TenantDropdown
|
|
12
|
+
TenantDropdown,
|
|
13
|
+
AggregateMenu,
|
|
14
|
+
UploadFile
|
|
11
15
|
};
|
|
12
16
|
export default localeValues;
|
|
13
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\en_US.ts"],"sourcesContent":["import { Locale } from \".\";\r\nimport ThemeSwitch from \"../theme-switch/locale/en_US\";\r\nimport LeavePrompt from \"../leave-prompt/locale/en_US\";\r\nimport AvatarDropdown from \"../avatar-dropdown/locale/en_US\";\r\nimport TenantDropdown from \"../tenant-dropdown/locale/en_US\";\r\n\r\nconst localeValues: Locale = {\r\n locale: 'en-us',\r\n ThemeSwitch,\r\n LeavePrompt,\r\n AvatarDropdown,\r\n TenantDropdown,\r\n}\r\n\r\nexport default localeValues\r\n"],"names":["ThemeSwitch","LeavePrompt","AvatarDropdown","TenantDropdown","localeValues","locale"],"mappings":"AACA,OAAOA,iBAAiB,+BAA+B;AACvD,OAAOC,iBAAiB,+BAA+B;AACvD,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,oBAAoB,kCAAkC;
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\en_US.ts"],"sourcesContent":["import { Locale } from \".\";\r\nimport ThemeSwitch from \"../theme-switch/locale/en_US\";\r\nimport LeavePrompt from \"../leave-prompt/locale/en_US\";\r\nimport AvatarDropdown from \"../avatar-dropdown/locale/en_US\";\r\nimport TenantDropdown from \"../tenant-dropdown/locale/en_US\";\r\nimport AggregateMenu from \"../aggregate-menu/locale/en_US\";\r\nimport UploadFile from \"../upload-file/locale/en_US\";\r\n\r\nconst localeValues: Locale = {\r\n locale: 'en-us',\r\n ThemeSwitch,\r\n LeavePrompt,\r\n AvatarDropdown,\r\n TenantDropdown,\r\n AggregateMenu,\r\n UploadFile,\r\n}\r\n\r\nexport default localeValues\r\n"],"names":["ThemeSwitch","LeavePrompt","AvatarDropdown","TenantDropdown","AggregateMenu","UploadFile","localeValues","locale"],"mappings":"AACA,OAAOA,iBAAiB,+BAA+B;AACvD,OAAOC,iBAAiB,+BAA+B;AACvD,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,mBAAmB,iCAAiC;AAC3D,OAAOC,gBAAgB,8BAA8B;AAErD,MAAMC,eAAuB;IAC3BC,QAAQ;IACRP;IACAC;IACAC;IACAC;IACAC;IACAC;AACF;AAEA,eAAeC,aAAY"}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { TenantDropdownLocale } from '../tenant-dropdown';
|
|
3
2
|
import { ThemeSwitchLocale } from '../theme-switch';
|
|
4
3
|
import { LeavePromptLocale } from '../leave-prompt';
|
|
5
4
|
import { AvatarDropdownLocale } from '../avatar-dropdown';
|
|
5
|
+
import { AggregateMenuLocale } from "../aggregate-menu";
|
|
6
|
+
import { UploadFileLocale } from "../upload-file";
|
|
6
7
|
export interface Locale {
|
|
7
8
|
locale: string;
|
|
8
9
|
ThemeSwitch: ThemeSwitchLocale;
|
|
9
10
|
LeavePrompt: LeavePromptLocale;
|
|
10
11
|
AvatarDropdown: AvatarDropdownLocale;
|
|
11
12
|
TenantDropdown: TenantDropdownLocale;
|
|
13
|
+
AggregateMenu: AggregateMenuLocale;
|
|
14
|
+
UploadFile: UploadFileLocale;
|
|
12
15
|
}
|
|
13
|
-
export declare enum LocaleType {
|
|
14
|
-
zhCN = "zh-CN",
|
|
15
|
-
enUS = "en-US"
|
|
16
|
-
}
|
|
17
|
-
export interface BasicProviderProps {
|
|
18
|
-
locale: LocaleType;
|
|
19
|
-
children?: React.ReactNode;
|
|
20
|
-
}
|
|
21
|
-
export declare const BasicContext: import("react").Context<BasicProviderProps>;
|
|
22
|
-
/**
|
|
23
|
-
* 组件上使用
|
|
24
|
-
*/
|
|
25
|
-
declare const _default: (props: BasicProviderProps) => JSX.Element;
|
|
26
|
-
export default _default;
|
|
27
16
|
export type LocaleComponentName = Exclude<keyof Locale, 'locale'>;
|
|
28
17
|
/**
|
|
29
18
|
* hook
|
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
import _object_spread from "@swc/helpers/src/_object_spread.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { createContext, useContext } from "react";
|
|
2
|
+
import { useContext } from "react";
|
|
4
3
|
import zhCN from "./zh_CN";
|
|
5
4
|
import enUS from "./en_US";
|
|
6
|
-
|
|
7
|
-
(function(LocaleType) {
|
|
8
|
-
LocaleType["zhCN"] = "zh-CN";
|
|
9
|
-
LocaleType["enUS"] = "en-US";
|
|
10
|
-
})(LocaleType || (LocaleType = {}));
|
|
11
|
-
// 定义语言上下文
|
|
12
|
-
export const BasicContext = /*#__PURE__*/ createContext({
|
|
13
|
-
locale: LocaleType.zhCN
|
|
14
|
-
});
|
|
15
|
-
/**
|
|
16
|
-
* 组件上使用
|
|
17
|
-
*/ export default ((props)=>{
|
|
18
|
-
const { locale , children } = props;
|
|
19
|
-
return /*#__PURE__*/ _jsx(BasicContext.Provider, {
|
|
20
|
-
value: {
|
|
21
|
-
locale: locale
|
|
22
|
-
},
|
|
23
|
-
children: children
|
|
24
|
-
});
|
|
25
|
-
});
|
|
5
|
+
import { Context, LocaleType } from "../provider/index";
|
|
26
6
|
/**
|
|
27
7
|
* hook
|
|
28
8
|
* @param componentName
|
|
29
9
|
* @returns
|
|
30
10
|
*/ export const useLocale = (componentName)=>{
|
|
31
|
-
const ctx = useContext(
|
|
11
|
+
const ctx = useContext(Context);
|
|
32
12
|
if (ctx.locale === LocaleType.enUS) return _object_spread({}, enUS[componentName]);
|
|
33
13
|
// 默认zhCN
|
|
34
14
|
return _object_spread({}, zhCN[componentName]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\index.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\index.tsx"],"sourcesContent":["import { useContext } from \"react\";\r\nimport zhCN from \"./zh_CN\";\r\nimport enUS from \"./en_US\";\r\nimport { TenantDropdownLocale } from '../tenant-dropdown';\r\nimport { ThemeSwitchLocale } from '../theme-switch';\r\nimport { LeavePromptLocale } from '../leave-prompt';\r\nimport { AvatarDropdownLocale } from '../avatar-dropdown';\r\nimport { AggregateMenuLocale } from \"../aggregate-menu\";\r\nimport { Context, LocaleType, ProviderProps } from \"../provider\";\r\nimport { UploadFileLocale } from \"../upload-file\";\r\n\r\nexport interface Locale {\r\n locale: string;\r\n ThemeSwitch: ThemeSwitchLocale;\r\n LeavePrompt: LeavePromptLocale;\r\n AvatarDropdown: AvatarDropdownLocale;\r\n TenantDropdown: TenantDropdownLocale;\r\n AggregateMenu: AggregateMenuLocale;\r\n UploadFile: UploadFileLocale;\r\n}\r\n\r\n\r\n\r\nexport type LocaleComponentName = Exclude<keyof Locale, 'locale'>;\r\n\r\n/**\r\n * hook\r\n * @param componentName\r\n * @returns\r\n */\r\nexport const useLocale = <C extends LocaleComponentName>(componentName: C) => {\r\n const ctx = useContext<ProviderProps>(Context);\r\n if (ctx.locale === LocaleType.enUS) {\r\n return { ...enUS[componentName] }\r\n }\r\n // 默认zhCN\r\n return { ...zhCN[componentName] }\r\n}\r\n"],"names":["useContext","zhCN","enUS","Context","LocaleType","useLocale","componentName","ctx","locale"],"mappings":";AAAA,SAASA,UAAU,QAAQ,QAAQ;AACnC,OAAOC,UAAU,UAAU;AAC3B,OAAOC,UAAU,UAAU;AAM3B,SAASC,OAAO,EAAEC,UAAU,QAAuB,oBAAc;AAiBjE;;;;CAIC,GACD,OAAO,MAAMC,YAAY,CAAgCC,gBAAqB;IAC5E,MAAMC,MAAMP,WAA0BG;IACtC,IAAII,IAAIC,MAAM,KAAKJ,WAAWF,IAAI,EAChC,OAAO,mBAAKA,IAAI,CAACI,cAAc;IAEjC,SAAS;IACT,OAAO,mBAAKL,IAAI,CAACK,cAAc;AACjC,EAAC"}
|
|
@@ -2,12 +2,16 @@ import ThemeSwitch from "../theme-switch/locale/zh_CN";
|
|
|
2
2
|
import LeavePrompt from "../leave-prompt/locale/zh_CN";
|
|
3
3
|
import AvatarDropdown from "../avatar-dropdown/locale/zh_CN";
|
|
4
4
|
import TenantDropdown from "../tenant-dropdown/locale/zh_CN";
|
|
5
|
+
import AggregateMenu from "../aggregate-menu/locale/zh_CN";
|
|
6
|
+
import UploadFile from "../upload-file/locale/zh_CN";
|
|
5
7
|
const localeValues = {
|
|
6
8
|
locale: 'zh-cn',
|
|
7
9
|
ThemeSwitch,
|
|
8
10
|
LeavePrompt,
|
|
9
11
|
AvatarDropdown,
|
|
10
|
-
TenantDropdown
|
|
12
|
+
TenantDropdown,
|
|
13
|
+
AggregateMenu,
|
|
14
|
+
UploadFile
|
|
11
15
|
};
|
|
12
16
|
export default localeValues;
|
|
13
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\zh_CN.ts"],"sourcesContent":["import { Locale } from \".\";\r\nimport ThemeSwitch from \"../theme-switch/locale/zh_CN\";\r\nimport LeavePrompt from \"../leave-prompt/locale/zh_CN\";\r\nimport AvatarDropdown from \"../avatar-dropdown/locale/zh_CN\";\r\nimport TenantDropdown from \"../tenant-dropdown/locale/zh_CN\";\r\n\r\nconst localeValues: Locale = {\r\n locale: 'zh-cn',\r\n ThemeSwitch,\r\n LeavePrompt,\r\n AvatarDropdown,\r\n TenantDropdown,\r\n}\r\n\r\nexport default localeValues\r\n"],"names":["ThemeSwitch","LeavePrompt","AvatarDropdown","TenantDropdown","localeValues","locale"],"mappings":"AACA,OAAOA,iBAAiB,+BAA+B;AACvD,OAAOC,iBAAiB,+BAA+B;AACvD,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,oBAAoB,kCAAkC;
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\locale\\zh_CN.ts"],"sourcesContent":["import { Locale } from \".\";\r\nimport ThemeSwitch from \"../theme-switch/locale/zh_CN\";\r\nimport LeavePrompt from \"../leave-prompt/locale/zh_CN\";\r\nimport AvatarDropdown from \"../avatar-dropdown/locale/zh_CN\";\r\nimport TenantDropdown from \"../tenant-dropdown/locale/zh_CN\";\r\nimport AggregateMenu from \"../aggregate-menu/locale/zh_CN\";\r\nimport UploadFile from \"../upload-file/locale/zh_CN\";\r\n\r\nconst localeValues: Locale = {\r\n locale: 'zh-cn',\r\n ThemeSwitch,\r\n LeavePrompt,\r\n AvatarDropdown,\r\n TenantDropdown,\r\n AggregateMenu,\r\n UploadFile,\r\n}\r\n\r\nexport default localeValues\r\n"],"names":["ThemeSwitch","LeavePrompt","AvatarDropdown","TenantDropdown","AggregateMenu","UploadFile","localeValues","locale"],"mappings":"AACA,OAAOA,iBAAiB,+BAA+B;AACvD,OAAOC,iBAAiB,+BAA+B;AACvD,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,oBAAoB,kCAAkC;AAC7D,OAAOC,mBAAmB,iCAAiC;AAC3D,OAAOC,gBAAgB,8BAA8B;AAErD,MAAMC,eAAuB;IAC3BC,QAAQ;IACRP;IACAC;IACAC;IACAC;IACAC;IACAC;AACF;AAEA,eAAeC,aAAY"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ModalProps as AntdModalProps } from "antd";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
export type ModalProps = AntdModalProps & {
|
|
4
|
+
/**
|
|
5
|
+
* 是否头部可拖拽
|
|
6
|
+
*/
|
|
7
|
+
isDraggable?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 是否满屏
|
|
10
|
+
*/
|
|
11
|
+
defaultScreenful?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 全屏图标
|
|
14
|
+
*/
|
|
15
|
+
screenfulIcon?: ReactNode | false;
|
|
16
|
+
};
|
|
17
|
+
declare const Modal: (props: ModalProps) => JSX.Element;
|
|
18
|
+
export default Modal;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import _object_spread from "@swc/helpers/src/_object_spread.mjs";
|
|
2
|
+
import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
|
|
3
|
+
import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
|
|
5
|
+
import { ExpandOutlined } from "@ant-design/icons";
|
|
6
|
+
import { Modal as AntdModal, Button } from "antd";
|
|
7
|
+
import { useRef, useState } from "react";
|
|
8
|
+
import Draggable from "react-draggable";
|
|
9
|
+
import styles from "./index.module.css";
|
|
10
|
+
const Modal = (props)=>{
|
|
11
|
+
const { width , style , title , defaultScreenful , isDraggable , screenfulIcon } = props, restProps = _object_without_properties(props, [
|
|
12
|
+
"width",
|
|
13
|
+
"style",
|
|
14
|
+
"title",
|
|
15
|
+
"defaultScreenful",
|
|
16
|
+
"isDraggable",
|
|
17
|
+
"screenfulIcon"
|
|
18
|
+
]);
|
|
19
|
+
const [screenful, setScreenful] = useState(defaultScreenful !== null && defaultScreenful !== void 0 ? defaultScreenful : false);
|
|
20
|
+
const [disabled, setDisabled] = useState(true);
|
|
21
|
+
const [bounds, setBounds] = useState({
|
|
22
|
+
left: 0,
|
|
23
|
+
top: 0,
|
|
24
|
+
bottom: 0,
|
|
25
|
+
right: 0
|
|
26
|
+
});
|
|
27
|
+
const draggleRef = useRef(null);
|
|
28
|
+
return /*#__PURE__*/ _jsx(AntdModal, _object_spread_props(_object_spread({}, restProps), {
|
|
29
|
+
className: screenful ? styles.screenfulModal : undefined,
|
|
30
|
+
width: screenful ? 'auto' : width,
|
|
31
|
+
style: screenful ? {
|
|
32
|
+
top: 0
|
|
33
|
+
} : style,
|
|
34
|
+
title: /*#__PURE__*/ _jsxs("div", {
|
|
35
|
+
className: screenful ? "" : styles.modal,
|
|
36
|
+
onMouseOver: ()=>{
|
|
37
|
+
if (screenful) {
|
|
38
|
+
setDisabled(true);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (disabled) setDisabled(false);
|
|
42
|
+
},
|
|
43
|
+
onMouseOut: ()=>{
|
|
44
|
+
setDisabled(true);
|
|
45
|
+
},
|
|
46
|
+
children: [
|
|
47
|
+
title,
|
|
48
|
+
screenfulIcon === false ? /*#__PURE__*/ _jsx(_Fragment, {}) : /*#__PURE__*/ _jsx(Button, {
|
|
49
|
+
className: styles.screenfulIcon,
|
|
50
|
+
type: "text",
|
|
51
|
+
size: "small",
|
|
52
|
+
onClick: (event)=>{
|
|
53
|
+
event.stopPropagation();
|
|
54
|
+
setScreenful(!screenful);
|
|
55
|
+
},
|
|
56
|
+
children: screenfulIcon ? screenfulIcon : /*#__PURE__*/ _jsx(ExpandOutlined, {
|
|
57
|
+
rev: undefined
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
]
|
|
61
|
+
}),
|
|
62
|
+
modalRender: (modal)=>{
|
|
63
|
+
return screenful ? modal : isDraggable === false ? modal : /*#__PURE__*/ _jsx(Draggable, {
|
|
64
|
+
disabled: disabled,
|
|
65
|
+
bounds: bounds,
|
|
66
|
+
nodeRef: draggleRef,
|
|
67
|
+
onStart: (event, uiData)=>{
|
|
68
|
+
var _draggleRef_current;
|
|
69
|
+
const { clientWidth , clientHeight } = window.document.documentElement;
|
|
70
|
+
const targetRect = (_draggleRef_current = draggleRef.current) === null || _draggleRef_current === void 0 ? void 0 : _draggleRef_current.getBoundingClientRect();
|
|
71
|
+
if (!targetRect) return;
|
|
72
|
+
setBounds({
|
|
73
|
+
left: -targetRect.left + uiData.x,
|
|
74
|
+
right: clientWidth - (targetRect.right - uiData.x),
|
|
75
|
+
top: -targetRect.top + uiData.y,
|
|
76
|
+
bottom: clientHeight - (targetRect.bottom - uiData.y)
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
80
|
+
ref: draggleRef,
|
|
81
|
+
children: modal
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}));
|
|
86
|
+
};
|
|
87
|
+
export default Modal;
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\es2017\components\modal\index.js.map
|