@knockout-js/layout 0.0.4-beta.0 → 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/{gather-menu → aggregate-menu}/index.d.ts +7 -9
- package/es2017/components/{gather-menu → aggregate-menu}/index.js +81 -74
- package/es2017/components/aggregate-menu/index.js.map +1 -0
- package/{esm/components/gather-menu → es2017/components/aggregate-menu}/index.module.css +62 -14
- package/es2017/components/aggregate-menu/locale/en_US.d.ts +3 -0
- package/es2017/components/{gather-menu → aggregate-menu}/locale/en_US.js +3 -1
- 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/{gather-menu → aggregate-menu}/locale/zh_CN.js +3 -1
- 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 +6 -2
- package/es2017/components/index.js +6 -2
- package/es2017/components/index.js.map +1 -1
- package/es2017/components/layout/index.d.ts +5 -5
- package/es2017/components/layout/index.js +14 -13
- package/es2017/components/layout/index.js.map +1 -1
- package/es2017/components/locale/en_US.js +4 -2
- package/es2017/components/locale/en_US.js.map +1 -1
- package/es2017/components/locale/index.d.ts +4 -17
- package/es2017/components/locale/index.js +3 -23
- package/es2017/components/locale/index.js.map +1 -1
- package/es2017/components/locale/zh_CN.js +4 -2
- package/es2017/components/locale/zh_CN.js.map +1 -1
- 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/{gather-menu → aggregate-menu}/index.d.ts +7 -9
- package/esm/components/{gather-menu → aggregate-menu}/index.js +83 -70
- package/esm/components/aggregate-menu/index.js.map +1 -0
- package/{es2017/components/gather-menu → esm/components/aggregate-menu}/index.module.css +62 -14
- package/esm/components/aggregate-menu/locale/en_US.d.ts +3 -0
- package/esm/components/{gather-menu → aggregate-menu}/locale/en_US.js +3 -1
- 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/{gather-menu → aggregate-menu}/locale/zh_CN.js +3 -1
- 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 +6 -2
- package/esm/components/index.js +6 -2
- package/esm/components/index.js.map +1 -1
- package/esm/components/layout/index.d.ts +5 -5
- package/esm/components/layout/index.js +14 -13
- package/esm/components/layout/index.js.map +1 -1
- package/esm/components/locale/en_US.js +4 -2
- package/esm/components/locale/en_US.js.map +1 -1
- package/esm/components/locale/index.d.ts +4 -17
- package/esm/components/locale/index.js +3 -23
- package/esm/components/locale/index.js.map +1 -1
- package/esm/components/locale/zh_CN.js +4 -2
- package/esm/components/locale/zh_CN.js.map +1 -1
- 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 +4 -4
- package/es2017/components/gather-menu/index.js.map +0 -1
- package/es2017/components/gather-menu/locale/en_US.d.ts +0 -3
- package/es2017/components/gather-menu/locale/en_US.js.map +0 -1
- package/es2017/components/gather-menu/locale/zh_CN.d.ts +0 -3
- package/es2017/components/gather-menu/locale/zh_CN.js.map +0 -1
- package/esm/components/gather-menu/index.js.map +0 -1
- package/esm/components/gather-menu/locale/en_US.d.ts +0 -3
- package/esm/components/gather-menu/locale/en_US.js.map +0 -1
- package/esm/components/gather-menu/locale/zh_CN.d.ts +0 -3
- package/esm/components/gather-menu/locale/zh_CN.js.map +0 -1
package/esm/components/index.js
CHANGED
|
@@ -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,9 +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";
|
|
10
11
|
export { default as Modal } from "./modal/index";
|
|
11
|
-
export { default as
|
|
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";
|
|
12
16
|
export var iceUrqlInstance;
|
|
13
17
|
(function(iceUrqlInstance) {
|
|
14
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,9 +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 {
|
|
8
|
+
import { AggregateMenuProps } from '../aggregate-menu';
|
|
9
9
|
export interface LayoutProps {
|
|
10
10
|
/**
|
|
11
11
|
* 应用code
|
|
@@ -18,11 +18,11 @@ export interface LayoutProps {
|
|
|
18
18
|
/**
|
|
19
19
|
* 菜单启用iconfont
|
|
20
20
|
*/
|
|
21
|
-
IconFont?:
|
|
21
|
+
IconFont?: FC<IconFontProps<string>>;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* 聚合菜单
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
aggregateMenuProps?: AggregateMenuProps;
|
|
26
26
|
/**
|
|
27
27
|
* I18nDropdown组件对应的参数
|
|
28
28
|
*/
|
|
@@ -11,18 +11,16 @@ import AvatarDropdown from "../avatar-dropdown/index";
|
|
|
11
11
|
import ThemeSwitch from "../theme-switch/index";
|
|
12
12
|
import styles from "./layout.module.css";
|
|
13
13
|
import { useCallback, useState } from "react";
|
|
14
|
-
import { LocaleType } from "../
|
|
15
|
-
import { CollectProviders } from "../index";
|
|
14
|
+
import { CollectProviders, LocaleType } from "../index";
|
|
16
15
|
import { gql, query } from "@knockout-js/ice-urql/request";
|
|
17
16
|
import { iceUrqlInstance } from "../index";
|
|
18
17
|
import { OpenWin } from "../icons/index";
|
|
19
18
|
import { logoBase64 } from "./logo";
|
|
20
|
-
import
|
|
19
|
+
import AggregateMenu from "../aggregate-menu/index";
|
|
21
20
|
import { BarsOutlined } from "@ant-design/icons";
|
|
22
21
|
var userMenuListQuery = gql("query userMenuList($appCode:String!){\n userMenus(appCode: $appCode){\n id,parentID,kind,name,comments,displaySort,icon,route\n }\n}");
|
|
23
22
|
var Layout = function(props) {
|
|
24
23
|
var _useState = _sliced_to_array(useState(LocaleType.zhCN), 2), locale = _useState[0], setLocale = _useState[1];
|
|
25
|
-
var _useState1 = _sliced_to_array(useState(false), 2), open = _useState1[0], setOpen = _useState1[1];
|
|
26
24
|
// 根据列表格式化成菜单树结构
|
|
27
25
|
var listFormatTree = useCallback(function(list, parentList) {
|
|
28
26
|
if (!parentList) parentList = list.filter(function(item) {
|
|
@@ -36,25 +34,28 @@ var Layout = function(props) {
|
|
|
36
34
|
});
|
|
37
35
|
return parentList;
|
|
38
36
|
}, []);
|
|
39
|
-
var isGatherMenu = !!props.gatherMenuProps;
|
|
40
37
|
return /*#__PURE__*/ _jsxs(CollectProviders, {
|
|
41
38
|
locale: locale,
|
|
39
|
+
appCode: props.appCode,
|
|
40
|
+
tenantId: props.tenantProps.value,
|
|
42
41
|
dark: props.themeSwitchProps.value,
|
|
43
42
|
pathname: props.pathname,
|
|
44
43
|
children: [
|
|
45
44
|
/*#__PURE__*/ _jsx(ProLayout, _object_spread_props(_object_spread({
|
|
46
45
|
className: styles.layout,
|
|
47
46
|
headerTitleRender: function(logo, title) {
|
|
47
|
+
var _props_aggregateMenuProps;
|
|
48
48
|
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
49
49
|
children: [
|
|
50
|
-
|
|
50
|
+
typeof ((_props_aggregateMenuProps = props.aggregateMenuProps) === null || _props_aggregateMenuProps === void 0 ? void 0 : _props_aggregateMenuProps.open) === "boolean" ? /*#__PURE__*/ _jsx(BarsOutlined, {
|
|
51
51
|
rev: undefined,
|
|
52
52
|
style: {
|
|
53
53
|
fontSize: 20,
|
|
54
54
|
marginRight: 10
|
|
55
55
|
},
|
|
56
56
|
onClick: function() {
|
|
57
|
-
|
|
57
|
+
var _props_aggregateMenuProps, _props_aggregateMenuProps_onChangeOpen;
|
|
58
|
+
(_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);
|
|
58
59
|
}
|
|
59
60
|
}) : /*#__PURE__*/ _jsx(_Fragment, {}),
|
|
60
61
|
logo,
|
|
@@ -70,7 +71,7 @@ var Layout = function(props) {
|
|
|
70
71
|
layout: "mix",
|
|
71
72
|
fixSiderbar: true,
|
|
72
73
|
suppressSiderWhenMenuEmpty: true,
|
|
73
|
-
menu:
|
|
74
|
+
menu: {
|
|
74
75
|
locale: true,
|
|
75
76
|
request: /*#__PURE__*/ _async_to_generator(function() {
|
|
76
77
|
var _result_data, result, meunList;
|
|
@@ -88,7 +89,10 @@ var Layout = function(props) {
|
|
|
88
89
|
case 1:
|
|
89
90
|
result = _state.sent();
|
|
90
91
|
if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.userMenus.length) {
|
|
91
|
-
meunList = result.data.userMenus.
|
|
92
|
+
meunList = result.data.userMenus.sort(function(d1, d2) {
|
|
93
|
+
var d1Sort = d1.displaySort || 0, d2Sort = d2.displaySort || 0;
|
|
94
|
+
return d1.parentID < d2.parentID ? -1 : d1.parentID > d2.parentID ? 1 : d1Sort < d2Sort ? -1 : d1Sort > d2Sort ? 1 : 0;
|
|
95
|
+
}).map(function(item) {
|
|
92
96
|
return {
|
|
93
97
|
key: item.id,
|
|
94
98
|
name: item.name,
|
|
@@ -154,10 +158,7 @@ var Layout = function(props) {
|
|
|
154
158
|
}, props.proLayoutProps), {
|
|
155
159
|
children: props.children
|
|
156
160
|
})),
|
|
157
|
-
/*#__PURE__*/ _jsx(
|
|
158
|
-
open: open,
|
|
159
|
-
onChangeOpen: setOpen
|
|
160
|
-
}))
|
|
161
|
+
/*#__PURE__*/ _jsx(AggregateMenu, _object_spread({}, props.aggregateMenuProps))
|
|
161
162
|
]
|
|
162
163
|
});
|
|
163
164
|
};
|
|
@@ -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\nimport GatherMenu, { GatherMenuProps } from '../gather-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?: React.FC<IconFontProps<string>>;\r\n /**\r\n * 集成菜单\r\n */\r\n gatherMenuProps?: GatherMenuProps;\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 const [open, setOpen] = useState(false);\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 const isGatherMenu = !!props.gatherMenuProps;\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 headerTitleRender={(logo, title) => {\r\n return <>\r\n {isGatherMenu ? <BarsOutlined\r\n rev={undefined}\r\n style={{ fontSize: 20, marginRight: 10 }}\r\n onClick={() => {\r\n setOpen(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={isGatherMenu ? <></> : {\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 <GatherMenu\r\n {...props.gatherMenuProps}\r\n open={open}\r\n onChangeOpen={setOpen}\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","LocaleType","CollectProviders","gql","query","iceUrqlInstance","OpenWin","logoBase64","GatherMenu","BarsOutlined","userMenuListQuery","Layout","props","zhCN","locale","setLocale","open","setOpen","listFormatTree","list","parentList","filter","item","parentId","forEach","pItem","children","allItem","key","length","isGatherMenu","gatherMenuProps","dark","themeSwitchProps","value","pathname","className","layout","headerTitleRender","logo","title","rev","undefined","style","fontSize","marginRight","onClick","img","src","alt","fixSiderbar","suppressSiderWhenMenuEmpty","menu","request","result","meunList","appCode","instanceName","ucenter","data","userMenus","map","id","name","icon","IconFont","type","i","parentID","path","route","location","actionsRender","onChange","i18nProps","tenantProps","avatarProps","menuItemRender","defaultDom","a","onClickMenuItem","menuIconPopup","proLayoutProps","onChangeOpen"],"mappings":"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"}
|
|
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","zhCN","locale","setLocale","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","meunList","instanceName","ucenter","data","userMenus","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,14 +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
|
|
5
|
+
import AggregateMenu from "../aggregate-menu/locale/en_US";
|
|
6
|
+
import UploadFile from "../upload-file/locale/en_US";
|
|
6
7
|
var localeValues = {
|
|
7
8
|
locale: "en-us",
|
|
8
9
|
ThemeSwitch: ThemeSwitch,
|
|
9
10
|
LeavePrompt: LeavePrompt,
|
|
10
11
|
AvatarDropdown: AvatarDropdown,
|
|
11
12
|
TenantDropdown: TenantDropdown,
|
|
12
|
-
|
|
13
|
+
AggregateMenu: AggregateMenu,
|
|
14
|
+
UploadFile: UploadFile
|
|
13
15
|
};
|
|
14
16
|
export default localeValues;
|
|
15
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\nimport
|
|
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,IAAMC,eAAuB;IAC3BC,QAAQ;IACRP,aAAAA;IACAC,aAAAA;IACAC,gBAAAA;IACAC,gBAAAA;IACAC,eAAAA;IACAC,YAAAA;AACF;AAEA,eAAeC,aAAY"}
|
|
@@ -1,31 +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';
|
|
6
|
-
import {
|
|
5
|
+
import { AggregateMenuLocale } from "../aggregate-menu";
|
|
6
|
+
import { UploadFileLocale } from "../upload-file";
|
|
7
7
|
export interface Locale {
|
|
8
8
|
locale: string;
|
|
9
9
|
ThemeSwitch: ThemeSwitchLocale;
|
|
10
10
|
LeavePrompt: LeavePromptLocale;
|
|
11
11
|
AvatarDropdown: AvatarDropdownLocale;
|
|
12
12
|
TenantDropdown: TenantDropdownLocale;
|
|
13
|
-
|
|
13
|
+
AggregateMenu: AggregateMenuLocale;
|
|
14
|
+
UploadFile: UploadFileLocale;
|
|
14
15
|
}
|
|
15
|
-
export declare enum LocaleType {
|
|
16
|
-
zhCN = "zh-CN",
|
|
17
|
-
enUS = "en-US"
|
|
18
|
-
}
|
|
19
|
-
export interface BasicProviderProps {
|
|
20
|
-
locale: LocaleType;
|
|
21
|
-
children?: React.ReactNode;
|
|
22
|
-
}
|
|
23
|
-
export declare const BasicContext: import("react").Context<BasicProviderProps>;
|
|
24
|
-
/**
|
|
25
|
-
* 组件上使用
|
|
26
|
-
*/
|
|
27
|
-
declare const _default: (props: BasicProviderProps) => JSX.Element;
|
|
28
|
-
export default _default;
|
|
29
16
|
export type LocaleComponentName = Exclude<keyof Locale, 'locale'>;
|
|
30
17
|
/**
|
|
31
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 var BasicContext = /*#__PURE__*/ createContext({
|
|
13
|
-
locale: LocaleType.zhCN
|
|
14
|
-
});
|
|
15
|
-
/**
|
|
16
|
-
* 组件上使用
|
|
17
|
-
*/ export default function(props) {
|
|
18
|
-
var locale = props.locale, children = props.children;
|
|
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 var useLocale = function(componentName) {
|
|
31
|
-
var ctx = useContext(
|
|
11
|
+
var 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,IAAMC,YAAY,SAAgCC,eAAqB;IAC5E,IAAMC,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,14 +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
|
|
5
|
+
import AggregateMenu from "../aggregate-menu/locale/zh_CN";
|
|
6
|
+
import UploadFile from "../upload-file/locale/zh_CN";
|
|
6
7
|
var localeValues = {
|
|
7
8
|
locale: "zh-cn",
|
|
8
9
|
ThemeSwitch: ThemeSwitch,
|
|
9
10
|
LeavePrompt: LeavePrompt,
|
|
10
11
|
AvatarDropdown: AvatarDropdown,
|
|
11
12
|
TenantDropdown: TenantDropdown,
|
|
12
|
-
|
|
13
|
+
AggregateMenu: AggregateMenu,
|
|
14
|
+
UploadFile: UploadFile
|
|
13
15
|
};
|
|
14
16
|
export default localeValues;
|
|
15
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\nimport
|
|
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,IAAMC,eAAuB;IAC3BC,QAAQ;IACRP,aAAAA;IACAC,aAAAA;IACAC,gBAAAA;IACAC,gBAAAA;IACAC,eAAAA;IACAC,YAAAA;AACF;AAEA,eAAeC,aAAY"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare enum LocaleType {
|
|
3
|
+
zhCN = "zh-CN",
|
|
4
|
+
enUS = "en-US"
|
|
5
|
+
}
|
|
6
|
+
export interface ProviderProps {
|
|
7
|
+
locale?: LocaleType;
|
|
8
|
+
appCode?: string;
|
|
9
|
+
tenantId?: string;
|
|
10
|
+
dark?: boolean;
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export declare const Context: import("react").Context<ProviderProps>;
|
|
14
|
+
/**
|
|
15
|
+
* 组件上使用
|
|
16
|
+
*/
|
|
17
|
+
declare const _default: (props: ProviderProps) => JSX.Element;
|
|
18
|
+
export default _default;
|
|
19
|
+
/**
|
|
20
|
+
* hook
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare const useTenantId: () => string;
|
|
24
|
+
/**
|
|
25
|
+
* hook
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
export declare const useAppCode: () => string;
|
|
29
|
+
/**
|
|
30
|
+
* hook
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
export declare const useDark: () => boolean;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _object_spread from "@swc/helpers/src/_object_spread.mjs";
|
|
2
|
+
import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
|
|
3
|
+
import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
|
|
4
|
+
import { createContext, useContext } from "react";
|
|
5
|
+
export var LocaleType;
|
|
6
|
+
(function(LocaleType) {
|
|
7
|
+
LocaleType["zhCN"] = "zh-CN";
|
|
8
|
+
LocaleType["enUS"] = "en-US";
|
|
9
|
+
})(LocaleType || (LocaleType = {}));
|
|
10
|
+
// 定义上下文
|
|
11
|
+
export var Context = /*#__PURE__*/ createContext({
|
|
12
|
+
locale: LocaleType.zhCN,
|
|
13
|
+
dark: false
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* 组件上使用
|
|
17
|
+
*/ export default function(props) {
|
|
18
|
+
var children = props.children, resProps = _object_without_properties(props, [
|
|
19
|
+
"children"
|
|
20
|
+
]);
|
|
21
|
+
return /*#__PURE__*/ _jsx(Context.Provider, {
|
|
22
|
+
value: _object_spread({}, resProps),
|
|
23
|
+
children: children
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* hook
|
|
28
|
+
* @returns
|
|
29
|
+
*/ export var useTenantId = function() {
|
|
30
|
+
var ctx = useContext(Context);
|
|
31
|
+
return ctx.tenantId;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* hook
|
|
35
|
+
* @returns
|
|
36
|
+
*/ export var useAppCode = function() {
|
|
37
|
+
var ctx = useContext(Context);
|
|
38
|
+
return ctx.appCode;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* hook
|
|
42
|
+
* @returns
|
|
43
|
+
*/ export var useDark = function() {
|
|
44
|
+
var ctx = useContext(Context);
|
|
45
|
+
var _ctx_dark;
|
|
46
|
+
return (_ctx_dark = ctx.dark) !== null && _ctx_dark !== void 0 ? _ctx_dark : false;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\provider\index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\provider\\index.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\r\n\r\nexport enum LocaleType {\r\n zhCN = \"zh-CN\",\r\n enUS = \"en-US\",\r\n}\r\n\r\nexport interface ProviderProps {\r\n locale?: LocaleType;\r\n appCode?: string;\r\n tenantId?: string;\r\n dark?: boolean;\r\n children?: React.ReactNode;\r\n}\r\n\r\n// 定义上下文\r\nexport const Context = createContext<ProviderProps>({\r\n locale: LocaleType.zhCN,\r\n dark: false\r\n});\r\n\r\n/**\r\n * 组件上使用\r\n */\r\nexport default (props: ProviderProps) => {\r\n const { children, ...resProps } = props;\r\n return <Context.Provider value={{ ...resProps }}>{children}</Context.Provider>\r\n}\r\n\r\n\r\n/**\r\n * hook\r\n * @returns\r\n */\r\nexport const useTenantId = () => {\r\n const ctx = useContext<ProviderProps>(Context);\r\n return ctx.tenantId\r\n}\r\n\r\n\r\n/**\r\n * hook\r\n * @returns\r\n */\r\nexport const useAppCode = () => {\r\n const ctx = useContext<ProviderProps>(Context);\r\n return ctx.appCode\r\n}\r\n\r\n/**\r\n * hook\r\n * @returns\r\n */\r\nexport const useDark = () => {\r\n const ctx = useContext<ProviderProps>(Context);\r\n return ctx.dark ?? false\r\n}\r\n"],"names":["createContext","useContext","LocaleType","zhCN","enUS","Context","locale","dark","props","children","resProps","Provider","value","useTenantId","ctx","tenantId","useAppCode","appCode","useDark"],"mappings":";;;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,QAAQ;WAE3C;UAAKC,UAAU;IAAVA,WACVC,UAAO;IADGD,WAEVE,UAAO;GAFGF,eAAAA;AAaZ,QAAQ;AACR,OAAO,IAAMG,wBAAUL,cAA6B;IAClDM,QAAQJ,WAAWC,IAAI;IACvBI,MAAM,KAAK;AACb,GAAG;AAEH;;CAEC,GACD,eAAe,SAACC,OAAyB;IACvC,IAAM,AAAEC,WAA0BD,MAA1BC,UAAaC,sCAAaF;QAA1BC;;IACR,qBAAO,KAACJ,QAAQM,QAAQ;QAACC,OAAO,mBAAKF;kBAAaD;;AACpD,EAAC;AAGD;;;CAGC,GACD,OAAO,IAAMI,cAAc,WAAM;IAC/B,IAAMC,MAAMb,WAA0BI;IACtC,OAAOS,IAAIC,QAAQ;AACrB,EAAC;AAGD;;;CAGC,GACD,OAAO,IAAMC,aAAa,WAAM;IAC9B,IAAMF,MAAMb,WAA0BI;IACtC,OAAOS,IAAIG,OAAO;AACpB,EAAC;AAED;;;CAGC,GACD,OAAO,IAAMC,UAAU,WAAM;IAC3B,IAAMJ,MAAMb,WAA0BI;QAC/BS;IAAP,OAAOA,CAAAA,YAAAA,IAAIP,IAAI,cAARO,uBAAAA,YAAY,KAAK;AAC1B,EAAC"}
|
|
@@ -65,7 +65,7 @@ export default function(props) {
|
|
|
65
65
|
});
|
|
66
66
|
}, []);
|
|
67
67
|
useEffect(function() {
|
|
68
|
-
if (document.hidden) {
|
|
68
|
+
if (document.hidden && info && info.id != props.value) {
|
|
69
69
|
var tipStr = locale.switchTipTitle;
|
|
70
70
|
document.title = tipStr;
|
|
71
71
|
document.body.innerHTML = '<div style="width:370px;margin:40px auto 0 auto;">'.concat(tipStr, "</div>");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\tenant-dropdown\\index.tsx"],"sourcesContent":["import { Dropdown, MenuProps, Modal } from 'antd';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport styles from './index.module.css';\r\nimport { useLocale } from '../locale';\r\nimport { Org, UserRootOrgsQuery, UserRootOrgsQueryVariables } from '@knockout-js/api';\r\nimport { gql, query } from '@knockout-js/ice-urql/request';\r\nimport { iceUrqlInstance } from '..';\r\n\r\nexport interface TenantDropdownLocale {\r\n switchTipTitle: string;\r\n confirmTitle: string;\r\n confirmContent: string;\r\n}\r\n\r\nexport interface TenantDropdownProps {\r\n /**\r\n * 当前 tenantId\r\n */\r\n value: string;\r\n /**\r\n * 数据源\r\n */\r\n dataSource?: Org[]
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\tenant-dropdown\\index.tsx"],"sourcesContent":["import { Dropdown, MenuProps, Modal } from 'antd';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport styles from './index.module.css';\r\nimport { useLocale } from '../locale';\r\nimport { Org, UserRootOrgsQuery, UserRootOrgsQueryVariables } from '@knockout-js/api';\r\nimport { gql, query } from '@knockout-js/ice-urql/request';\r\nimport { iceUrqlInstance } from '..';\r\n\r\nexport interface TenantDropdownLocale {\r\n switchTipTitle: string;\r\n confirmTitle: string;\r\n confirmContent: string;\r\n}\r\n\r\nexport interface TenantDropdownProps {\r\n /**\r\n * 当前 tenantId\r\n */\r\n value: string;\r\n /**\r\n * 数据源\r\n */\r\n dataSource?: Org[];\r\n /**\r\n * value变更事件 (value: string) => void;\r\n */\r\n onChange: (value: string) => void;\r\n}\r\n\r\nconst userRootOrgListQuery = gql(/* GraphQL */`query userRootOrgs{\r\n userRootOrgs{\r\n id,parentID,kind,domain,code,name,status,path,displaySort,countryCode,timezone\r\n }\r\n}`);\r\n\r\nexport default (props: TenantDropdownProps) => {\r\n const locale = useLocale('TenantDropdown'),\r\n [list, setList] = useState<Array<Org>>([]),\r\n [info, setInfo] = useState<Org | undefined>(undefined),\r\n [menu, setMenu] = useState<MenuProps | undefined>(undefined);\r\n\r\n const\r\n getRequest = async () => {\r\n const result = await query<UserRootOrgsQuery, UserRootOrgsQueryVariables>(userRootOrgListQuery, {}, { instanceName: iceUrqlInstance.ucenter });\r\n if (result.data?.userRootOrgs.length) {\r\n const orgList = result.data.userRootOrgs as Org[]\r\n setList(orgList)\r\n }\r\n },\r\n setValue = () => {\r\n setInfo(list.find(item => item.id == props.value));\r\n setMenu({\r\n items: list.filter(item => item?.id != props.value).map(item => {\r\n return {\r\n key: item.id,\r\n label: item.name,\r\n onClick: menuItemClick\r\n };\r\n }),\r\n });\r\n },\r\n menuItemClick = useCallback(({ key }: { key: string }) => {\r\n Modal.confirm({\r\n title: locale.confirmTitle,\r\n content: locale.confirmContent,\r\n onOk: () => {\r\n props.onChange(key)\r\n },\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (document.hidden && (info && info.id != props.value)) {\r\n const tipStr = locale.switchTipTitle;\r\n document.title = tipStr;\r\n document.body.innerHTML = `<div style=\"width:370px;margin:40px auto 0 auto;\">${tipStr}</div>`;\r\n window.close();\r\n } else {\r\n setValue()\r\n }\r\n }, [props.value]);\r\n\r\n useEffect(() => {\r\n setValue()\r\n }, [list]);\r\n\r\n useEffect(() => {\r\n if (props.dataSource) {\r\n setList(props.dataSource)\r\n } else {\r\n getRequest();\r\n }\r\n }, [, props.dataSource]);\r\n\r\n return info ? <Dropdown menu={menu} disabled={menu?.items?.length === 0}>\r\n <span className={styles.action}>\r\n <span>{info.name}</span>\r\n </span>\r\n </Dropdown> : <></>;\r\n};\r\n"],"names":["Dropdown","Modal","useCallback","useEffect","useState","styles","useLocale","gql","query","iceUrqlInstance","userRootOrgListQuery","props","menu","locale","list","setList","undefined","info","setInfo","setMenu","getRequest","result","orgList","instanceName","ucenter","data","userRootOrgs","length","setValue","find","item","id","value","items","filter","map","key","label","name","onClick","menuItemClick","confirm","title","confirmTitle","content","confirmContent","onOk","onChange","document","hidden","tipStr","switchTipTitle","body","innerHTML","window","close","dataSource","disabled","span","className","action"],"mappings":";;;;AAAA,SAASA,QAAQ,EAAaC,KAAK,QAAQ,OAAO;AAClD,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AACzD,OAAOC,YAAY,qBAAqB;AACxC,SAASC,SAAS,QAAQ,kBAAY;AAEtC,SAASC,GAAG,EAAEC,KAAK,QAAQ,gCAAgC;AAC3D,SAASC,eAAe,QAAQ,WAAK;AAuBrC,IAAMC,uBAAuBH,IAAkB;AAM/C,eAAe,SAACI,OAA+B;QA2DCC;IA1D9C,IAAMC,SAASP,UAAU,mBACLF,6BAAAA,SAAqB,EAAE,OAAxCU,OAAiBV,cAAXW,UAAWX,cACAA,8BAAAA,SAA0BY,gBAA3CC,OAAiBb,eAAXc,UAAWd,eACAA,8BAAAA,SAAgCY,gBAAjDJ,OAAiBR,eAAXe,UAAWf;IAEpB,IACEgB;mBAAa,oBAAA,WAAY;gBAEnBC,cADEA,QAEEC;;;;wBAFO;;4BAAMd,MAAqDE,sBAAsB,CAAC,GAAG;gCAAEa,cAAcd,gBAAgBe,OAAO;4BAAC;;;wBAAtIH,SAAS;wBACf,IAAIA,CAAAA,eAAAA,OAAOI,IAAI,cAAXJ,0BAAAA,KAAAA,IAAAA,aAAaK,aAAaC,MAAM,EAAE;4BAC9BL,UAAUD,OAAOI,IAAI,CAACC,YAAY;4BACxCX,QAAQO;wBACV,CAAC;;;;;;QACH;wBANAF;;;SAOAQ,WAAW,WAAM;QACfV,QAAQJ,KAAKe,IAAI,CAACC,SAAAA;mBAAQA,KAAKC,EAAE,IAAIpB,MAAMqB,KAAK;;QAChDb,QAAQ;YACNc,OAAOnB,KAAKoB,MAAM,CAACJ,SAAAA;gBAAQA,OAAAA,CAAAA,iBAAAA,kBAAAA,KAAAA,IAAAA,KAAMC,EAAE,AAAD,KAAKpB,MAAMqB,KAAK;eAAEG,GAAG,CAACL,SAAAA,MAAQ;gBAC9D,OAAO;oBACLM,KAAKN,KAAKC,EAAE;oBACZM,OAAOP,KAAKQ,IAAI;oBAChBC,SAASC;gBACX;YACF;QACF;IACF,GACAA,gBAAgBtC,YAAY,gBAA8B;YAA3BkC,YAAAA;QAC7BnC,MAAMwC,OAAO,CAAC;YACZC,OAAO7B,OAAO8B,YAAY;YAC1BC,SAAS/B,OAAOgC,cAAc;YAC9BC,MAAM,WAAM;gBACVnC,MAAMoC,QAAQ,CAACX;YACjB;QACF;IACF,GAAG,EAAE;IAEPjC,UAAU,WAAM;QACd,IAAI6C,SAASC,MAAM,IAAKhC,QAAQA,KAAKc,EAAE,IAAIpB,MAAMqB,KAAK,EAAG;YACvD,IAAMkB,SAASrC,OAAOsC,cAAc;YACpCH,SAASN,KAAK,GAAGQ;YACjBF,SAASI,IAAI,CAACC,SAAS,GAAG,AAAC,qDAA2D,OAAPH,QAAO;YACtFI,OAAOC,KAAK;QACd,OACE3B;IAEJ,GAAG;QAACjB,MAAMqB,KAAK;KAAC;IAEhB7B,UAAU,WAAM;QACdyB;IACF,GAAG;QAACd;KAAK;IAETX,UAAU,WAAM;QACd,IAAIQ,MAAM6C,UAAU,EAClBzC,QAAQJ,MAAM6C,UAAU;aAExBpC;IAEJ,GAAG;;QAAGT,MAAM6C,UAAU;KAAC;IAEvB,OAAOvC,qBAAO,KAACjB;QAASY,MAAMA;QAAM6C,UAAU7C,CAAAA,iBAAAA,kBAAAA,KAAAA,IAAAA,CAAAA,cAAAA,KAAMqB,KAAK,cAAXrB,yBAAAA,KAAAA,IAAAA,YAAae,MAAF,AAAD,MAAc;kBACpE,cAAA,KAAC+B;YAAKC,WAAWtD,OAAOuD,MAAM;sBAC5B,cAAA,KAACF;0BAAMzC,KAAKqB,IAAI;;;uBAEN,mBAAK;AACrB,EAAE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export type UploadFileLocale = {
|
|
2
|
+
fileSizeTip: string;
|
|
3
|
+
del: string;
|
|
4
|
+
confirmDel: string;
|
|
5
|
+
clickOrDragUpload: string;
|
|
6
|
+
supportExtension: string;
|
|
7
|
+
errSupportExtension: string;
|
|
8
|
+
fileUpload: string;
|
|
9
|
+
tempViewer: string;
|
|
10
|
+
tempDown: string;
|
|
11
|
+
};
|
|
12
|
+
export interface UploadFileProps<T> {
|
|
13
|
+
/**
|
|
14
|
+
* bucket
|
|
15
|
+
*/
|
|
16
|
+
bucket?: string;
|
|
17
|
+
/**
|
|
18
|
+
* 应用code
|
|
19
|
+
*/
|
|
20
|
+
appCode?: string;
|
|
21
|
+
/**
|
|
22
|
+
* tenantId
|
|
23
|
+
*/
|
|
24
|
+
tenantId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* 目录格式 xxx/ss
|
|
27
|
+
*/
|
|
28
|
+
directory?: string;
|
|
29
|
+
/**
|
|
30
|
+
* 强制使用目录当前缀
|
|
31
|
+
*/
|
|
32
|
+
forceDirectory?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 限制文件大小
|
|
35
|
+
*/
|
|
36
|
+
maxSize?: number;
|
|
37
|
+
/**
|
|
38
|
+
* 限制弹框选择
|
|
39
|
+
*/
|
|
40
|
+
accept?: string;
|
|
41
|
+
/**
|
|
42
|
+
* 文件 id
|
|
43
|
+
*/
|
|
44
|
+
value?: T;
|
|
45
|
+
/**
|
|
46
|
+
* 返回文件id
|
|
47
|
+
* @param value
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
onChange?: (value?: T) => void;
|
|
51
|
+
/**
|
|
52
|
+
* 返回文件path
|
|
53
|
+
* @param path
|
|
54
|
+
* @returns
|
|
55
|
+
*/
|
|
56
|
+
onChangePath?: (path?: T) => void;
|
|
57
|
+
}
|
|
58
|
+
export declare const formatFileSize: (fileSize: number) => string;
|
|
59
|
+
export declare const randomId: (len: number) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//字节大小处理
|
|
2
|
+
export var formatFileSize = function(fileSize) {
|
|
3
|
+
if (fileSize < 1024) return fileSize + "B";
|
|
4
|
+
else if (fileSize < 1048576) return (fileSize / 1024).toFixed(2) + "KB";
|
|
5
|
+
else if (fileSize < 1073741824) return (fileSize / 1048576).toFixed(2) + "MB";
|
|
6
|
+
else return (fileSize / 1073741824).toFixed(2) + "GB";
|
|
7
|
+
};
|
|
8
|
+
// 随机数
|
|
9
|
+
export var randomId = function(len) {
|
|
10
|
+
var str = "";
|
|
11
|
+
for(; str.length < len; str += Math.random().toString(36).substring(2));
|
|
12
|
+
return str.substring(0, len);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\upload-file\index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\upload-file\\index.ts"],"sourcesContent":["export type UploadFileLocale = {\r\n // 文件大小必须小于:\r\n fileSizeTip: string;\r\n del: string;\r\n confirmDel: string;\r\n // 点击或拖拽文件上传\r\n clickOrDragUpload: string;\r\n // 支持扩展名\r\n supportExtension: string;\r\n errSupportExtension: string;\r\n fileUpload: string;\r\n tempViewer: string;\r\n tempDown: string;\r\n}\r\n\r\nexport interface UploadFileProps<T> {\r\n /**\r\n * bucket\r\n */\r\n bucket?: string;\r\n /**\r\n * 应用code\r\n */\r\n appCode?: string;\r\n /**\r\n * tenantId\r\n */\r\n tenantId?: string;\r\n /**\r\n * 目录格式 xxx/ss\r\n */\r\n directory?: string;\r\n /**\r\n * 强制使用目录当前缀\r\n */\r\n forceDirectory?: boolean;\r\n /**\r\n * 限制文件大小\r\n */\r\n maxSize?: number;\r\n /**\r\n * 限制弹框选择\r\n */\r\n accept?: string;\r\n /**\r\n * 文件 id\r\n */\r\n value?: T;\r\n /**\r\n * 返回文件id\r\n * @param value\r\n * @returns\r\n */\r\n onChange?: (value?: T) => void;\r\n /**\r\n * 返回文件path\r\n * @param path\r\n * @returns\r\n */\r\n onChangePath?: (path?: T) => void;\r\n}\r\n\r\n//字节大小处理\r\nexport const formatFileSize = (fileSize: number) => {\r\n if (fileSize < 1024) {\r\n return fileSize + 'B';\r\n } else if (fileSize < (1024 * 1024)) {\r\n return (fileSize / 1024).toFixed(2) + 'KB';\r\n } else if (fileSize < (1024 * 1024 * 1024)) {\r\n return (fileSize / (1024 * 1024)).toFixed(2) + 'MB';\r\n } else {\r\n return (fileSize / (1024 * 1024 * 1024)).toFixed(2) + 'GB';\r\n }\r\n}\r\n\r\n// 随机数\r\nexport const randomId = (len: number) => {\r\n let str = '';\r\n for (; str.length < len; str += Math.random().toString(36).substring(2));\r\n return str.substring(0, len);\r\n}\r\n"],"names":["formatFileSize","fileSize","toFixed","randomId","len","str","length","Math","random","toString","substring"],"mappings":"AA8DA,QAAQ;AACR,OAAO,IAAMA,iBAAiB,SAACC,UAAqB;IAClD,IAAIA,WAAW,MACb,OAAOA,WAAW;SACb,IAAIA,WAAY,SACrB,OAAO,AAACA,CAAAA,WAAW,IAAG,EAAGC,OAAO,CAAC,KAAK;SACjC,IAAID,WAAY,YACrB,OAAO,AAACA,CAAAA,WAAY,OAAW,EAAGC,OAAO,CAAC,KAAK;SAE/C,OAAO,AAACD,CAAAA,WAAY,UAAkB,EAAGC,OAAO,CAAC,KAAK;AAE1D,EAAC;AAED,MAAM;AACN,OAAO,IAAMC,WAAW,SAACC,KAAgB;IACvC,IAAIC,MAAM;IACV,MAAOA,IAAIC,MAAM,GAAGF,KAAKC,OAAOE,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC;IACrE,OAAOL,IAAIK,SAAS,CAAC,GAAGN;AAC1B,EAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var locale = {
|
|
2
|
+
fileSizeTip: "The file size cannot be less than",
|
|
3
|
+
del: "delete",
|
|
4
|
+
confirmDel: "Confirm deletion",
|
|
5
|
+
clickOrDragUpload: "Click or drag the file to upload",
|
|
6
|
+
supportExtension: "Support extension",
|
|
7
|
+
errSupportExtension: "Only the extension name is supported",
|
|
8
|
+
fileUpload: "File upload",
|
|
9
|
+
tempViewer: "Template preview",
|
|
10
|
+
tempDown: "Template download"
|
|
11
|
+
};
|
|
12
|
+
export default locale;
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\upload-file\locale\en_US.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\upload-file\\locale\\en_US.ts"],"sourcesContent":["import { UploadFileLocale } from \"../index\";\r\n\r\nconst locale: UploadFileLocale = {\r\n fileSizeTip: \"The file size cannot be less than\",\r\n del: \"delete\",\r\n confirmDel: \"Confirm deletion\",\r\n clickOrDragUpload: \"Click or drag the file to upload\",\r\n supportExtension: \"Support extension\",\r\n errSupportExtension: \"Only the extension name is supported\",\r\n fileUpload: \"File upload\",\r\n tempViewer: \"Template preview\",\r\n tempDown: \"Template download\",\r\n};\r\n\r\nexport default locale\r\n"],"names":["locale","fileSizeTip","del","confirmDel","clickOrDragUpload","supportExtension","errSupportExtension","fileUpload","tempViewer","tempDown"],"mappings":"AAEA,IAAMA,SAA2B;IAC/BC,aAAa;IACbC,KAAK;IACLC,YAAY;IACZC,mBAAmB;IACnBC,kBAAkB;IAClBC,qBAAqB;IACrBC,YAAY;IACZC,YAAY;IACZC,UAAU;AACZ;AAEA,eAAeT,OAAM"}
|