@knockout-js/layout 0.0.4-beta.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/es2017/components/_util/index.d.ts +40 -0
  2. package/es2017/components/_util/index.js +69 -0
  3. package/es2017/components/_util/index.js.map +1 -0
  4. package/es2017/components/aggregate-menu/index.d.ts +6 -1
  5. package/es2017/components/aggregate-menu/index.js +156 -69
  6. package/es2017/components/aggregate-menu/index.js.map +1 -1
  7. package/es2017/components/aggregate-menu/index.module.css +38 -16
  8. package/es2017/components/index.d.ts +1 -0
  9. package/es2017/components/index.js +2 -0
  10. package/es2017/components/index.js.map +1 -1
  11. package/es2017/components/layout/index.d.ts +7 -1
  12. package/es2017/components/layout/index.js +12 -26
  13. package/es2017/components/layout/index.js.map +1 -1
  14. package/es2017/components/upload-file/index.d.ts +0 -2
  15. package/es2017/components/upload-file/index.js +1 -13
  16. package/es2017/components/upload-file/index.js.map +1 -1
  17. package/es2017/components/upload-file/uploadAvatar.js +1 -1
  18. package/es2017/components/upload-file/uploadAvatar.js.map +1 -1
  19. package/es2017/components/upload-file/uploadMultiple.js +1 -1
  20. package/es2017/components/upload-file/uploadMultiple.js.map +1 -1
  21. package/es2017/components/upload-file/uploadTemp.js +1 -1
  22. package/es2017/components/upload-file/uploadTemp.js.map +1 -1
  23. package/esm/components/_util/index.d.ts +40 -0
  24. package/esm/components/_util/index.js +75 -0
  25. package/esm/components/_util/index.js.map +1 -0
  26. package/esm/components/aggregate-menu/index.d.ts +6 -1
  27. package/esm/components/aggregate-menu/index.js +258 -70
  28. package/esm/components/aggregate-menu/index.js.map +1 -1
  29. package/esm/components/aggregate-menu/index.module.css +38 -16
  30. package/esm/components/index.d.ts +1 -0
  31. package/esm/components/index.js +2 -0
  32. package/esm/components/index.js.map +1 -1
  33. package/esm/components/layout/index.d.ts +7 -1
  34. package/esm/components/layout/index.js +12 -31
  35. package/esm/components/layout/index.js.map +1 -1
  36. package/esm/components/upload-file/index.d.ts +0 -2
  37. package/esm/components/upload-file/index.js +1 -13
  38. package/esm/components/upload-file/index.js.map +1 -1
  39. package/esm/components/upload-file/uploadAvatar.js +1 -1
  40. package/esm/components/upload-file/uploadAvatar.js.map +1 -1
  41. package/esm/components/upload-file/uploadMultiple.js +1 -1
  42. package/esm/components/upload-file/uploadMultiple.js.map +1 -1
  43. package/esm/components/upload-file/uploadTemp.js +1 -1
  44. package/esm/components/upload-file/uploadTemp.js.map +1 -1
  45. package/package.json +7 -3
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 列表数据格式化成树结构
3
+ * @param allList
4
+ * @param parentList
5
+ * @param defineKey
6
+ * @param parentId
7
+ * @returns
8
+ */ import _object_spread from "@swc/helpers/src/_object_spread.mjs";
9
+ import _to_consumable_array from "@swc/helpers/src/_to_consumable_array.mjs";
10
+ export var listFormatTreeData = function(allList, parentList, defineKey, parentId) {
11
+ var dataKey = _object_spread({
12
+ key: "key",
13
+ parentId: "parentId"
14
+ }, defineKey), pid = parentId === undefined ? "0" : parentId;
15
+ if (!parentList) parentList = allList.filter(function(item) {
16
+ return item[dataKey.parentId] == pid;
17
+ });
18
+ parentList.forEach(function(pItem) {
19
+ var children = allList.filter(function(allItem) {
20
+ return allItem[dataKey.parentId] == pItem[dataKey.key];
21
+ });
22
+ if (children && children.length) pItem.children = listFormatTreeData(allList, children, dataKey);
23
+ });
24
+ return parentList;
25
+ };
26
+ /**
27
+ * 解析树结构按树顺序处理成列表
28
+ * @param treeList
29
+ * @returns
30
+ */ export var treeFormatList = function(treeList) {
31
+ var allList = [];
32
+ treeList.forEach(function(item) {
33
+ var _allList;
34
+ var children = item.children;
35
+ delete item.children;
36
+ allList === null || allList === void 0 ? void 0 : allList.push(item);
37
+ if (children) (_allList = allList).push.apply(_allList, _to_consumable_array(treeFormatList(children)));
38
+ });
39
+ return allList;
40
+ };
41
+ /**
42
+ * 字节大小展示处理
43
+ * @param fileSize
44
+ * @returns
45
+ */ export var formatFileSize = function(fileSize) {
46
+ if (fileSize < 1024) return fileSize + "B";
47
+ else if (fileSize < 1048576) return (fileSize / 1024).toFixed(2) + "KB";
48
+ else if (fileSize < 1073741824) return (fileSize / 1048576).toFixed(2) + "MB";
49
+ else return (fileSize / 1073741824).toFixed(2) + "GB";
50
+ };
51
+ /**
52
+ * 随机数
53
+ * @param len
54
+ * @returns
55
+ */ export var randomId = function(len) {
56
+ var str = "";
57
+ for(; str.length < len; str += Math.random().toString(36).substring(2));
58
+ return str.substring(0, len);
59
+ };
60
+ /**
61
+ * 解析env配置的app地址字符串
62
+ * @param evnStr appCode@deploy_address;
63
+ * @returns
64
+ */ export var parseEnvAppAddress = function(evnStr) {
65
+ var address = {};
66
+ evnStr.split(";").forEach(function(str) {
67
+ if (str) {
68
+ var adds = str.split("@");
69
+ if (adds.length === 2) address[adds[0]] = adds[1];
70
+ }
71
+ });
72
+ return address;
73
+ };
74
+
75
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\_util\index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\_util\\index.ts"],"sourcesContent":["/**\r\n * 列表数据格式化成树结构\r\n * @param allList\r\n * @param parentList\r\n * @param defineKey\r\n * @param parentId\r\n * @returns\r\n */\r\nexport const listFormatTreeData = <T extends Record<string, any> & { children?: T[] }>(\r\n allList: T[],\r\n parentList?: T[],\r\n defineKey?: {\r\n key?: string;\r\n parentId?: string;\r\n },\r\n parentId?: string | number,\r\n) => {\r\n const dataKey = { key: 'key', parentId: 'parentId', ...defineKey },\r\n pid = parentId === undefined ? '0' : parentId;\r\n\r\n if (!parentList) {\r\n parentList = allList.filter(item => item[dataKey.parentId] == pid);\r\n }\r\n\r\n parentList.forEach((pItem) => {\r\n const children = allList.filter(\r\n (allItem) => allItem[dataKey.parentId] == pItem[dataKey.key],\r\n );\r\n if (children && children.length) {\r\n pItem.children = listFormatTreeData(allList, children, dataKey);\r\n }\r\n });\r\n return parentList;\r\n};\r\n\r\n/**\r\n * 解析树结构按树顺序处理成列表\r\n * @param treeList\r\n * @returns\r\n */\r\nexport const treeFormatList = <T extends Record<string, any> & { children?: T[] }>(treeList: T[]) => {\r\n const allList: T[] = [];\r\n\r\n treeList.forEach(item => {\r\n const children = item.children;\r\n delete item.children;\r\n allList?.push(item);\r\n if (children) {\r\n allList.push(...treeFormatList(children));\r\n }\r\n });\r\n\r\n return allList;\r\n}\r\n\r\n/**\r\n * 字节大小展示处理\r\n * @param fileSize\r\n * @returns\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\n * 随机数\r\n * @param len\r\n * @returns\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\r\n\r\n/**\r\n * 解析env配置的app地址字符串\r\n * @param evnStr appCode@deploy_address;\r\n * @returns\r\n */\r\nexport const parseEnvAppAddress = (evnStr: string) => {\r\n const address: Record<string, string> = {};\r\n evnStr.split(';').forEach(str => {\r\n if (str) {\r\n const adds = str.split('@');\r\n if (adds.length === 2) {\r\n address[adds[0]] = adds[1];\r\n }\r\n }\r\n })\r\n return address;\r\n}\r\n"],"names":["listFormatTreeData","allList","parentList","defineKey","parentId","dataKey","key","pid","undefined","filter","item","forEach","pItem","children","allItem","length","treeFormatList","treeList","push","formatFileSize","fileSize","toFixed","randomId","len","str","Math","random","toString","substring","parseEnvAppAddress","evnStr","address","split","adds"],"mappings":"AAAA;;;;;;;CAOC;;AACD,OAAO,IAAMA,qBAAqB,SAChCC,SACAC,YACAC,WAIAC,UACG;IACH,IAAMC,UAAU;QAAEC,KAAK;QAAOF,UAAU;OAAeD,YACrDI,MAAMH,aAAaI,YAAY,MAAMJ,QAAQ;IAE/C,IAAI,CAACF,YACHA,aAAaD,QAAQQ,MAAM,CAACC,SAAAA;eAAQA,IAAI,CAACL,QAAQD,QAAQ,CAAC,IAAIG;;IAGhEL,WAAWS,OAAO,CAAC,SAACC,OAAU;QAC5B,IAAMC,WAAWZ,QAAQQ,MAAM,CAC7B,SAACK;mBAAYA,OAAO,CAACT,QAAQD,QAAQ,CAAC,IAAIQ,KAAK,CAACP,QAAQC,GAAG,CAAC;;QAE9D,IAAIO,YAAYA,SAASE,MAAM,EAC7BH,MAAMC,QAAQ,GAAGb,mBAAmBC,SAASY,UAAUR;IAE3D;IACA,OAAOH;AACT,EAAE;AAEF;;;;CAIC,GACD,OAAO,IAAMc,iBAAiB,SAAqDC,UAAkB;IACnG,IAAMhB,UAAe,EAAE;IAEvBgB,SAASN,OAAO,CAACD,SAAAA,MAAQ;YAKrBT;QAJF,IAAMY,WAAWH,KAAKG,QAAQ;QAC9B,OAAOH,KAAKG,QAAQ;QACpBZ,oBAAAA,qBAAAA,KAAAA,IAAAA,QAASiB,IAAI,CAACR;QACd,IAAIG,UACFZ,CAAAA,WAAAA,SAAQiB,IAAI,CAAZjB,MAAAA,UAAa,qBAAGe,eAAeH;IAEnC;IAEA,OAAOZ;AACT,EAAC;AAED;;;;CAIC,GACD,OAAO,IAAMkB,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;;;;CAIC,GACD,OAAO,IAAMC,WAAW,SAACC,KAAgB;IACvC,IAAIC,MAAM;IACV,MAAOA,IAAIT,MAAM,GAAGQ,KAAKC,OAAOC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC;IACrE,OAAOJ,IAAII,SAAS,CAAC,GAAGL;AAC1B,EAAC;AAGD;;;;CAIC,GACD,OAAO,IAAMM,qBAAqB,SAACC,QAAmB;IACpD,IAAMC,UAAkC,CAAC;IACzCD,OAAOE,KAAK,CAAC,KAAKrB,OAAO,CAACa,SAAAA,KAAO;QAC/B,IAAIA,KAAK;YACP,IAAMS,OAAOT,IAAIQ,KAAK,CAAC;YACvB,IAAIC,KAAKlB,MAAM,KAAK,GAClBgB,OAAO,CAACE,IAAI,CAAC,EAAE,CAAC,GAAGA,IAAI,CAAC,EAAE;QAE9B,CAAC;IACH;IACA,OAAOF;AACT,EAAC"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { DrawerProps } from "antd";
2
3
  import { App, AppMenu } from "@knockout-js/api";
3
4
  export type AggregateMenuLocale = {
4
5
  title: string;
@@ -19,6 +20,10 @@ export interface AggregateMenuProps {
19
20
  * 数据源
20
21
  */
21
22
  dataSource?: AggregateMenuDataSource;
23
+ /**
24
+ * 弹框设置
25
+ */
26
+ drawerProps?: DrawerProps;
22
27
  /**
23
28
  * 弹出开关变更
24
29
  */
@@ -26,7 +31,7 @@ export interface AggregateMenuProps {
26
31
  /**
27
32
  * 选中菜单
28
33
  */
29
- onClick?: (menuItem: AppMenu, app: App) => void;
34
+ onClick?: (menuItem: AppMenu, app: App, isOpen?: boolean) => void;
30
35
  }
31
36
  declare const _default: (props: AggregateMenuProps) => JSX.Element;
32
37
  export default _default;
@@ -9,16 +9,20 @@ import { CloseOutlined, DragOutlined, SearchOutlined, StarOutlined } from "@ant-
9
9
  import { useCallback, useEffect, useState } from "react";
10
10
  import styles from "./index.module.css";
11
11
  import { Drawer, Empty, Input, Space } from "antd";
12
- import { gql, paging, query } from "@knockout-js/ice-urql/request";
12
+ import { gql, mutation, paging, query } from "@knockout-js/ice-urql/request";
13
13
  import { AppMenuKind } from "@knockout-js/api";
14
14
  import { iceUrqlInstance } from "../index";
15
15
  import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } from "@dnd-kit/core";
16
16
  import { arrayMove, SortableContext, useSortable, sortableKeyboardCoordinates, verticalListSortingStrategy } from "@dnd-kit/sortable";
17
17
  import { CSS } from "@dnd-kit/utilities";
18
18
  import { useLocale } from "../locale/index";
19
- import { useDark, useTenantId } from "../provider/index";
20
- var userMenuListQuery = gql("query userMenuList($appCode:String!){\n userMenus(appCode: $appCode){\n id,name,route,appID,parentID,displaySort,kind\n }\n}");
21
- var userOrgAppsQuery = gql("query layoutPkgUserRootOrgs($first:Int){\n userRootOrgs{\n id,\n apps(first: $first){\n totalCount,\n edges{ node{ id,name,code } }\n }\n }\n}");
19
+ import { useDark } from "../provider/index";
20
+ import { listFormatTreeData, treeFormatList } from "../_util/index";
21
+ import { OpenWin } from "../icons/index";
22
+ var userMenuListQuery = gql("query layoutPkgUserMenuList($appCode:String!){\n userMenus(appCode: $appCode){\n id,name,route,appID,parentID,displaySort,kind\n }\n}");
23
+ var userAppsQuery = gql("query layoutPkgUserAppList{\n userApps{\n id,name,code\n }\n}");
24
+ var userPreferenceQuery = gql("query layoutPkgUserPreference{\n orgUserPreference{\n id,menuFavorite,menuRecent,\n }\n}");
25
+ var userPreferenceMut = gql("mutation layoutPkgSaveUserPreference($input:OrgUserPreferenceInput!){\n saveOrgUserPreference(input: $input){ id }\n}");
22
26
  /**
23
27
  * 排序拖拽使用的控件
24
28
  * https://docs.dndkit.com/
@@ -50,9 +54,17 @@ var userOrgAppsQuery = gql("query layoutPkgUserRootOrgs($first:Int){\n userRoot
50
54
  className: styles.aggregateMenuDrawerMenuItemIcons,
51
55
  children: /*#__PURE__*/ _jsxs(Space, {
52
56
  children: [
57
+ /*#__PURE__*/ _jsx(OpenWin, {
58
+ className: "anticon",
59
+ onClick: function(event) {
60
+ event.stopPropagation();
61
+ props.onClick(true);
62
+ }
63
+ }),
53
64
  /*#__PURE__*/ _jsx(CloseOutlined, {
54
65
  rev: undefined,
55
- onClick: function() {
66
+ onClick: function(event) {
67
+ event.stopPropagation();
56
68
  props.onDel();
57
69
  }
58
70
  }),
@@ -68,32 +80,24 @@ var userOrgAppsQuery = gql("query layoutPkgUserRootOrgs($first:Int){\n userRoot
68
80
  }));
69
81
  };
70
82
  export default function(props) {
71
- var _useState = _sliced_to_array(useState([]), 2), all = _useState[0], setAll = _useState[1], _useState1 = _sliced_to_array(useState([]), 2), filterList = _useState1[0], setFilterList = _useState1[1], _useState2 = _sliced_to_array(useState([]), 2), collects = _useState2[0], setCollects = _useState2[1], _useState3 = _sliced_to_array(useState([]), 2), latelys = _useState3[0], setLately = _useState3[1], locale = useLocale("AggregateMenu"), isDark = useDark(), tenantId = useTenantId(), sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
83
+ var _useState = _sliced_to_array(useState([]), 2), all = _useState[0], setAll = _useState[1], _useState1 = _sliced_to_array(useState([]), 2), filterList = _useState1[0], setFilterList = _useState1[1], _useState2 = _sliced_to_array(useState([]), 2), collects = _useState2[0], setCollects = _useState2[1], _useState3 = _sliced_to_array(useState([]), 2), latelys = _useState3[0], setLately = _useState3[1], locale = useLocale("AggregateMenu"), isDark = useDark(), sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
72
84
  coordinateGetter: sortableKeyboardCoordinates
73
85
  }));
74
86
  var request = useCallback(/*#__PURE__*/ _async_to_generator(function() {
75
- var _appsResult_data, appsResult, apps, newAll, _tmp, _tmp1, _i, i, _menuResult_data, menuResult, menu;
87
+ var _appsResult_data, _preferenceResult_data, _preferenceResult_data_orgUserPreference, appsResult, apps, newAll, _tmp, _tmp1, _i, i, _menuResult_data, menuResult, menu, preferenceResult, menuFavorite, menuRecent, collectsList, latelyList;
76
88
  return _ts_generator(this, function(_state) {
77
89
  switch(_state.label){
78
90
  case 0:
79
91
  return [
80
92
  4,
81
- paging(userOrgAppsQuery, {
82
- first: 30
83
- }, 1, {
93
+ paging(userAppsQuery, {}, 1, {
84
94
  instanceName: iceUrqlInstance.ucenter
85
95
  })
86
96
  ];
87
97
  case 1:
88
98
  appsResult = _state.sent(), apps = [];
89
- if ((_appsResult_data = appsResult.data) === null || _appsResult_data === void 0 ? void 0 : _appsResult_data.userRootOrgs) appsResult.data.userRootOrgs.forEach(function(org) {
90
- var _org_apps_edges;
91
- if (tenantId === org.id) (_org_apps_edges = org.apps.edges) === null || _org_apps_edges === void 0 ? void 0 : _org_apps_edges.forEach(function(oApp) {
92
- if ((oApp === null || oApp === void 0 ? void 0 : oApp.node) && !apps.find(function(app) {
93
- var _oApp_node;
94
- return app.id === ((_oApp_node = oApp.node) === null || _oApp_node === void 0 ? void 0 : _oApp_node.id);
95
- })) apps.push(oApp.node);
96
- });
99
+ if ((_appsResult_data = appsResult.data) === null || _appsResult_data === void 0 ? void 0 : _appsResult_data.userApps) appsResult.data.userApps.forEach(function(app) {
100
+ apps.push(app);
97
101
  });
98
102
  newAll = [];
99
103
  _tmp = [];
@@ -123,7 +127,10 @@ export default function(props) {
123
127
  });
124
128
  newAll.push({
125
129
  app: apps[i],
126
- menu: menu
130
+ menu: treeFormatList(listFormatTreeData(menu, undefined, {
131
+ key: "id",
132
+ parentId: "parentID"
133
+ }))
127
134
  });
128
135
  }
129
136
  _state.label = 4;
@@ -136,26 +143,154 @@ export default function(props) {
136
143
  case 5:
137
144
  setAll(newAll);
138
145
  setFilterList(newAll);
146
+ return [
147
+ 4,
148
+ query(userPreferenceQuery, {}, {
149
+ instanceName: iceUrqlInstance.ucenter
150
+ })
151
+ ];
152
+ case 6:
153
+ preferenceResult = _state.sent();
154
+ if ((_preferenceResult_data = preferenceResult.data) === null || _preferenceResult_data === void 0 ? void 0 : (_preferenceResult_data_orgUserPreference = _preferenceResult_data.orgUserPreference) === null || _preferenceResult_data_orgUserPreference === void 0 ? void 0 : _preferenceResult_data_orgUserPreference.id) {
155
+ menuFavorite = preferenceResult.data.orgUserPreference.menuFavorite, menuRecent = preferenceResult.data.orgUserPreference.menuRecent, collectsList = [], latelyList = [];
156
+ if (menuFavorite) menuFavorite.forEach(function(id) {
157
+ for(var i in newAll){
158
+ var menuItem = newAll[i].menu.find(function(item) {
159
+ return item.id == id;
160
+ });
161
+ if (menuItem) {
162
+ collectsList.push(menuItem);
163
+ break;
164
+ }
165
+ }
166
+ });
167
+ if (menuRecent) menuRecent.forEach(function(id) {
168
+ for(var i in newAll){
169
+ var menuItem = newAll[i].menu.find(function(item) {
170
+ return item.id == id;
171
+ });
172
+ if (menuItem) {
173
+ latelyList.push(menuItem);
174
+ break;
175
+ }
176
+ }
177
+ });
178
+ setCollects(collectsList);
179
+ setLately(latelyList);
180
+ }
139
181
  return [
140
182
  2
141
183
  ];
142
184
  }
143
185
  });
144
- }), []), checkCollect = useCallback(function(menuItem) {
186
+ }), []), requestFavorite = function() {
187
+ var _ref = _async_to_generator(function(list) {
188
+ return _ts_generator(this, function(_state) {
189
+ switch(_state.label){
190
+ case 0:
191
+ // 异步存储收藏
192
+ return [
193
+ 4,
194
+ mutation(userPreferenceMut, {
195
+ input: {
196
+ menuFavorite: list.map(function(item) {
197
+ return item.id;
198
+ })
199
+ }
200
+ }, {
201
+ instanceName: iceUrqlInstance.ucenter
202
+ })
203
+ ];
204
+ case 1:
205
+ _state.sent();
206
+ return [
207
+ 2
208
+ ];
209
+ }
210
+ });
211
+ });
212
+ return function requestFavorite(list) {
213
+ return _ref.apply(this, arguments);
214
+ };
215
+ }(), requestRecent = function() {
216
+ var _ref = _async_to_generator(function(ids) {
217
+ return _ts_generator(this, function(_state) {
218
+ switch(_state.label){
219
+ case 0:
220
+ // 异步存储访问菜单记录
221
+ return [
222
+ 4,
223
+ mutation(userPreferenceMut, {
224
+ input: {
225
+ menuRecent: ids
226
+ }
227
+ }, {
228
+ instanceName: iceUrqlInstance.ucenter
229
+ })
230
+ ];
231
+ case 1:
232
+ _state.sent();
233
+ return [
234
+ 2
235
+ ];
236
+ }
237
+ });
238
+ });
239
+ return function requestRecent(ids) {
240
+ return _ref.apply(this, arguments);
241
+ };
242
+ }(), checkCollect = useCallback(function(menuItem) {
145
243
  return !!collects.find(function(item) {
146
244
  return item.id === menuItem.id && item.appID === menuItem.appID;
147
245
  });
148
246
  }, [
149
247
  collects
150
- ]), menuItemRender = function(menuItem) {
248
+ ]), onClickItem = function() {
249
+ var _ref = _async_to_generator(function(menuItem, isOpen) {
250
+ var allApp, _props_onClick, latelyList, oldIdx;
251
+ return _ts_generator(this, function(_state) {
252
+ switch(_state.label){
253
+ case 0:
254
+ allApp = all.find(function(allItem) {
255
+ return allItem.app.id == menuItem.appID;
256
+ });
257
+ if (!allApp) return [
258
+ 3,
259
+ 2
260
+ ];
261
+ latelyList = _to_consumable_array(latelys);
262
+ oldIdx = latelyList.findIndex(function(lately) {
263
+ return lately.id == menuItem.id;
264
+ });
265
+ if (oldIdx > -1) latelyList.splice(oldIdx, 1);
266
+ latelyList.unshift(menuItem);
267
+ latelyList.splice(6);
268
+ return [
269
+ 4,
270
+ requestRecent(latelyList.map(function(item) {
271
+ return item.id;
272
+ }))
273
+ ];
274
+ case 1:
275
+ _state.sent();
276
+ setLately(latelyList);
277
+ (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, menuItem, allApp.app, isOpen);
278
+ _state.label = 2;
279
+ case 2:
280
+ return [
281
+ 2
282
+ ];
283
+ }
284
+ });
285
+ });
286
+ return function onClickItem(menuItem, isOpen) {
287
+ return _ref.apply(this, arguments);
288
+ };
289
+ }(), menuItemRender = function(menuItem) {
151
290
  return /*#__PURE__*/ _jsxs("div", {
152
291
  className: styles.aggregateMenuDrawerAllMenuItem,
153
292
  onClick: function() {
154
- var _props_onClick;
155
- var allApp = all.find(function(allItem) {
156
- return allItem.app.id == menuItem.appID;
157
- });
158
- if (allApp) (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, menuItem, allApp.app);
293
+ onClickItem(menuItem);
159
294
  },
160
295
  children: [
161
296
  /*#__PURE__*/ _jsxs("div", {
@@ -166,18 +301,52 @@ export default function(props) {
166
301
  ]
167
302
  }),
168
303
  /*#__PURE__*/ _jsx("div", {
169
- children: /*#__PURE__*/ _jsx(StarOutlined, {
170
- rev: undefined,
171
- className: checkCollect(menuItem) ? "collect" : "",
172
- onClick: function(event) {
173
- event.stopPropagation();
174
- if (checkCollect(menuItem)) setCollects(collects.filter(function(c) {
175
- return !(c.id === menuItem.id && c.appID === menuItem.appID);
176
- }));
177
- else setCollects(_to_consumable_array(collects).concat([
178
- menuItem
179
- ]));
180
- }
304
+ className: styles.aggregateMenuDrawerAllMenuItemIcons,
305
+ children: /*#__PURE__*/ _jsxs(Space, {
306
+ children: [
307
+ /*#__PURE__*/ _jsx(OpenWin, {
308
+ className: "anticon",
309
+ onClick: function(event) {
310
+ event.stopPropagation();
311
+ onClickItem(menuItem, true);
312
+ }
313
+ }),
314
+ /*#__PURE__*/ _jsx(StarOutlined, {
315
+ rev: undefined,
316
+ className: checkCollect(menuItem) ? "collect" : "",
317
+ onClick: function() {
318
+ var _ref = _async_to_generator(function(event) {
319
+ var collectList;
320
+ return _ts_generator(this, function(_state) {
321
+ switch(_state.label){
322
+ case 0:
323
+ event.stopPropagation();
324
+ collectList = [];
325
+ if (checkCollect(menuItem)) collectList = collects.filter(function(c) {
326
+ return !(c.id === menuItem.id && c.appID === menuItem.appID);
327
+ });
328
+ else collectList = _to_consumable_array(collects).concat([
329
+ menuItem
330
+ ]);
331
+ return [
332
+ 4,
333
+ requestFavorite(collectList)
334
+ ];
335
+ case 1:
336
+ _state.sent();
337
+ setCollects(collectList);
338
+ return [
339
+ 2
340
+ ];
341
+ }
342
+ });
343
+ });
344
+ return function(event) {
345
+ return _ref.apply(this, arguments);
346
+ };
347
+ }()
348
+ })
349
+ ]
181
350
  })
182
351
  })
183
352
  ]
@@ -192,12 +361,14 @@ export default function(props) {
192
361
  props.dataSource
193
362
  ]);
194
363
  return /*#__PURE__*/ _jsx(_Fragment, {
195
- children: /*#__PURE__*/ _jsx(Drawer, {
196
- className: "".concat(styles.aggregateMenuDrawer, " ").concat(isDark ? styles.aggregateMenuDark : ""),
364
+ children: /*#__PURE__*/ _jsx(Drawer, _object_spread_props(_object_spread({
197
365
  title: locale.title,
366
+ maskClosable: false,
198
367
  placement: "left",
368
+ width: 1060
369
+ }, props.drawerProps), {
370
+ className: "".concat(styles.aggregateMenuDrawer, " ").concat(isDark ? styles.aggregateMenuDark : ""),
199
371
  open: props.open,
200
- width: 1060,
201
372
  onClose: function() {
202
373
  var _props_onChangeOpen;
203
374
  (_props_onChangeOpen = props.onChangeOpen) === null || _props_onChangeOpen === void 0 ? void 0 : _props_onChangeOpen.call(props, false);
@@ -222,7 +393,9 @@ export default function(props) {
222
393
  var newIndex = items.findIndex(function(nItem) {
223
394
  return "".concat(nItem.id, "-").concat(nItem.appID) == over.id;
224
395
  });
225
- return arrayMove(items, oldIndex, newIndex);
396
+ var collectList = arrayMove(items, oldIndex, newIndex);
397
+ requestFavorite(collectList);
398
+ return collectList;
226
399
  });
227
400
  },
228
401
  children: /*#__PURE__*/ _jsx(SortableContext, {
@@ -231,19 +404,31 @@ export default function(props) {
231
404
  }),
232
405
  strategy: verticalListSortingStrategy,
233
406
  children: collects.map(function(item) {
234
- /*#__PURE__*/ return _jsx(DargItem, {
407
+ return /*#__PURE__*/ _jsx(DargItem, {
235
408
  value: item,
236
- onDel: function() {
237
- setCollects(collects.filter(function(c) {
238
- return !(c.id === item.id && c.appID === item.appID);
239
- }));
240
- },
241
- onClick: function() {
242
- var _props_onClick;
243
- var allApp = all.find(function(allItem) {
244
- return allItem.app.id == item.appID;
409
+ onDel: /*#__PURE__*/ _async_to_generator(function() {
410
+ var collectList;
411
+ return _ts_generator(this, function(_state) {
412
+ switch(_state.label){
413
+ case 0:
414
+ collectList = collects.filter(function(c) {
415
+ return !(c.id === item.id && c.appID === item.appID);
416
+ });
417
+ return [
418
+ 4,
419
+ requestFavorite(collectList)
420
+ ];
421
+ case 1:
422
+ _state.sent();
423
+ setCollects(collectList);
424
+ return [
425
+ 2
426
+ ];
427
+ }
245
428
  });
246
- if (allApp) (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, item, allApp.app);
429
+ }),
430
+ onClick: function(isOpen) {
431
+ onClickItem(item, isOpen);
247
432
  }
248
433
  }, "c".concat(item.id, "-").concat(item.appID));
249
434
  })
@@ -304,29 +489,32 @@ export default function(props) {
304
489
  style: {
305
490
  height: latelys.length ? "calc(100% - 164px)" : "calc(100% - 52px)"
306
491
  },
307
- children: filterList.map(function(item) {
308
- return /*#__PURE__*/ _jsxs("div", {
309
- className: styles.aggregateMenuDrawerAllMenuColumn,
310
- children: [
311
- /*#__PURE__*/ _jsx("div", {
312
- className: styles.aggregateMenuDrawerAllAppTitle,
313
- children: item.app.name
314
- }),
315
- item.menu.map(function(menuItem) {
316
- return menuItem.kind === AppMenuKind.Menu ? menuItemRender(menuItem) : /*#__PURE__*/ _jsx("div", {
317
- className: styles.aggregateMenuDrawerAllMenuItemDir,
318
- children: menuItem.name
319
- }, "".concat(menuItem.appID, "-").concat(menuItem.id));
320
- })
321
- ]
322
- }, item.app.code);
492
+ children: /*#__PURE__*/ _jsx("div", {
493
+ className: styles.aggregateMenuDrawerAllMenuColumn,
494
+ children: filterList.map(function(item) {
495
+ return /*#__PURE__*/ _jsxs("div", {
496
+ className: styles.aggregateMenuDrawerAllMenuColumnItem,
497
+ children: [
498
+ /*#__PURE__*/ _jsx("div", {
499
+ className: styles.aggregateMenuDrawerAllAppTitle,
500
+ children: item.app.name
501
+ }),
502
+ item.menu.map(function(menuItem) {
503
+ return menuItem.kind === AppMenuKind.Menu ? menuItemRender(menuItem) : /*#__PURE__*/ _jsx("div", {
504
+ className: styles.aggregateMenuDrawerAllMenuItemDir,
505
+ children: menuItem.name
506
+ }, "".concat(menuItem.appID, "-").concat(menuItem.id));
507
+ })
508
+ ]
509
+ }, item.app.code);
510
+ })
323
511
  })
324
512
  })
325
513
  ]
326
514
  })
327
515
  ]
328
516
  })
329
- })
517
+ }))
330
518
  });
331
519
  };
332
520