@next-core/easyops-runtime 0.10.5 → 0.10.7

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 (66) hide show
  1. package/dist/cjs/analytics/http.js +3 -4
  2. package/dist/cjs/analytics/http.js.map +1 -1
  3. package/dist/cjs/checkInstalledApps.js +1 -2
  4. package/dist/cjs/checkInstalledApps.js.map +1 -1
  5. package/dist/cjs/checkPermissions.js.map +1 -1
  6. package/dist/cjs/flowApi/CollectContracts.js.map +1 -1
  7. package/dist/cjs/flowApi/FlowApi.js +2 -2
  8. package/dist/cjs/flowApi/FlowApi.js.map +1 -1
  9. package/dist/cjs/flowApi/FlowApiProvider.js +5 -5
  10. package/dist/cjs/flowApi/FlowApiProvider.js.map +1 -1
  11. package/dist/cjs/menu/fetchMenuById.js.map +1 -1
  12. package/dist/cjs/menu/fetchMenuTitle.js +1 -1
  13. package/dist/cjs/menu/fetchMenuTitle.js.map +1 -1
  14. package/dist/cjs/menu/getMenusOfStandaloneApp.js +2 -2
  15. package/dist/cjs/menu/getMenusOfStandaloneApp.js.map +1 -1
  16. package/dist/cjs/menu/mergeMenu.js +1 -2
  17. package/dist/cjs/menu/mergeMenu.js.map +1 -1
  18. package/dist/cjs/menu/reorderMenuItems.js +1 -4
  19. package/dist/cjs/menu/reorderMenuItems.js.map +1 -1
  20. package/dist/cjs/websocket/MessageDispatcher.js.map +1 -1
  21. package/dist/cjs/websocket/MessageService.js.map +1 -1
  22. package/dist/esm/analytics/analytics.js +23 -18
  23. package/dist/esm/analytics/analytics.js.map +1 -1
  24. package/dist/esm/analytics/http.js +19 -20
  25. package/dist/esm/analytics/http.js.map +1 -1
  26. package/dist/esm/analytics/pageView.js +6 -6
  27. package/dist/esm/analytics/pageView.js.map +1 -1
  28. package/dist/esm/analytics/transport.js +12 -12
  29. package/dist/esm/analytics/transport.js.map +1 -1
  30. package/dist/esm/auth-v2.js +1 -1
  31. package/dist/esm/auth-v2.js.map +1 -1
  32. package/dist/esm/auth.js +5 -4
  33. package/dist/esm/auth.js.map +1 -1
  34. package/dist/esm/checkInstalledApps.js +19 -30
  35. package/dist/esm/checkInstalledApps.js.map +1 -1
  36. package/dist/esm/checkPermissions.js +35 -48
  37. package/dist/esm/checkPermissions.js.map +1 -1
  38. package/dist/esm/flowApi/CollectContracts.js +5 -5
  39. package/dist/esm/flowApi/CollectContracts.js.map +1 -1
  40. package/dist/esm/flowApi/FlowApi.js +68 -87
  41. package/dist/esm/flowApi/FlowApi.js.map +1 -1
  42. package/dist/esm/flowApi/FlowApiProvider.js +87 -87
  43. package/dist/esm/flowApi/FlowApiProvider.js.map +1 -1
  44. package/dist/esm/index.js +3 -3
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/menu/computeMenuData.js +17 -24
  47. package/dist/esm/menu/computeMenuData.js.map +1 -1
  48. package/dist/esm/menu/constants.js +3 -3
  49. package/dist/esm/menu/constants.js.map +1 -1
  50. package/dist/esm/menu/fetchMenuById.js +61 -70
  51. package/dist/esm/menu/fetchMenuById.js.map +1 -1
  52. package/dist/esm/menu/fetchMenuTitle.js +27 -34
  53. package/dist/esm/menu/fetchMenuTitle.js.map +1 -1
  54. package/dist/esm/menu/getMenusOfStandaloneApp.js +11 -9
  55. package/dist/esm/menu/getMenusOfStandaloneApp.js.map +1 -1
  56. package/dist/esm/menu/loadDynamicMenuItems.js +17 -23
  57. package/dist/esm/menu/loadDynamicMenuItems.js.map +1 -1
  58. package/dist/esm/menu/mergeMenu.js +44 -54
  59. package/dist/esm/menu/mergeMenu.js.map +1 -1
  60. package/dist/esm/menu/reorderMenuItems.js +3 -6
  61. package/dist/esm/menu/reorderMenuItems.js.map +1 -1
  62. package/dist/esm/websocket/MessageDispatcher.js +19 -19
  63. package/dist/esm/websocket/MessageDispatcher.js.map +1 -1
  64. package/dist/esm/websocket/MessageService.js +9 -9
  65. package/dist/esm/websocket/MessageService.js.map +1 -1
  66. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMenuById.js","names":["InstanceApi_postSearch","InstalledMicroAppApi_getMenusInfo","omit","pick","checkIfOfComputed","mergeMenu","reorderMenu","computeMenuItems","computeMenuData","fetchMenuTitle","getMenusOfStandaloneApp","preCheckPermissionsForAny","menuPromises","Map","menuCache","transformMenuItems","menuItems","filter","map","item","children","transformedMenuItem","type","title","text","childLayout","items","groupId","groupFrom","length","icon","defaultExpanded","getMenuById","menuId","get","fetchMenuById","runtimeContext","helpers","promise","_fetchMenuById","_x","_x2","_x3","_fetchMenuById2","apply","arguments","_asyncToGenerator","menuList","window","STANDALONE_MICRO_APPS","app","id","flags","menuObjectId","menus","page","page_size","fields","link","titleDataSource","defaultCollapsed","defaultCollapsedBreakpoint","injectMenuGroupId","dynamicItems","itemsResolve","i18n","query","$eq","$size","$gt","list","menuData","Error","concat","restMenuData","_objectWithoutProperties","_excluded","newRuntimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreId","forEachItem","forEachIndex","rootAppId","appId","computedMenuData","computedMenuItems","Promise","all","finalMenuData","set"],"sources":["../../../src/menu/fetchMenuById.ts"],"sourcesContent":["import { InstanceApi_postSearch } from \"@next-api-sdk/cmdb-sdk\";\nimport { InstalledMicroAppApi_getMenusInfo } from \"@next-api-sdk/micro-app-sdk\";\nimport { omit, pick } from \"lodash\";\nimport { checkIfOfComputed } from \"@next-core/runtime\";\nimport { mergeMenu } from \"./mergeMenu.js\";\nimport { reorderMenu } from \"./reorderMenuItems.js\";\nimport type {\n MenuRawData,\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n SidebarMenu,\n SidebarMenuItem,\n} from \"./interfaces.js\";\nimport { computeMenuItems, computeMenuData } from \"./computeMenuData.js\";\nimport { fetchMenuTitle } from \"./fetchMenuTitle.js\";\nimport { getMenusOfStandaloneApp } from \"./getMenusOfStandaloneApp.js\";\nimport { preCheckPermissionsForAny } from \"../checkPermissions.js\";\n\nconst menuPromises = new Map<string, Promise<void>>();\n\nconst menuCache = new Map<string, SidebarMenu>();\n\nfunction transformMenuItems(\n menuItems: RuntimeMenuItemRawData[] | undefined\n): SidebarMenuItem[] | undefined {\n return menuItems?.filter(checkIfOfComputed).map((item) => {\n const children = transformMenuItems(item.children);\n const transformedMenuItem: SidebarMenuItem =\n item.type === \"group\"\n ? {\n type: \"group\",\n title: item.text,\n childLayout: item.childLayout,\n items: children,\n groupId: item.groupId,\n groupFrom: item.groupFrom,\n }\n : children?.length\n ? {\n type: \"subMenu\",\n childLayout: item.childLayout,\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded,\n }\n : (omit(item, [\"type\", \"items\", \"children\"]) as SidebarMenuItem);\n return transformedMenuItem;\n });\n}\n\nexport function getMenuById(menuId: string) {\n return menuCache.get(menuId);\n}\n\nexport function fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n) {\n let promise = menuPromises.get(menuId);\n if (!promise) {\n promise = _fetchMenuById(menuId, runtimeContext, helpers);\n }\n return promise;\n}\n\nasync function _fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n) {\n const menuList = window.STANDALONE_MICRO_APPS\n ? getMenusOfStandaloneApp(menuId, runtimeContext.app.id, helpers)\n : runtimeContext.flags[\"three-level-menu-layout\"]\n ? ((\n await InstalledMicroAppApi_getMenusInfo(menuId, {\n menuObjectId: \"EASYOPS_STORYBOARD_MENU\",\n })\n ).menus as MenuRawData[])\n : ((\n await InstanceApi_postSearch(\"EASYOPS_STORYBOARD_MENU\", {\n page: 1,\n page_size: 200,\n fields: {\n menuId: true,\n title: true,\n icon: true,\n link: true,\n titleDataSource: true,\n defaultCollapsed: true,\n defaultCollapsedBreakpoint: true,\n type: true,\n injectMenuGroupId: true,\n dynamicItems: true,\n itemsResolve: true,\n items: true,\n i18n: true,\n \"items.children\": true,\n \"app.appId\": true,\n },\n query: {\n menuId: {\n $eq: menuId,\n },\n app: {\n $size: {\n $gt: 0,\n },\n },\n },\n })\n ).list as MenuRawData[]);\n\n const menuData = await mergeMenu(menuList, runtimeContext, helpers);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n\n reorderMenu(menuData);\n\n const { items, app, ...restMenuData } = menuData;\n const newRuntimeContext: RuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [\n ...runtimeContext.pendingPermissionsPreCheck,\n preCheckPermissionsForAny([items, restMenuData]),\n ],\n };\n delete newRuntimeContext.tplStateStoreId;\n delete newRuntimeContext.forEachItem;\n delete newRuntimeContext.forEachIndex;\n const rootAppId = app[0].appId;\n\n const [computedMenuData, computedMenuItems] = await Promise.all([\n computeMenuData(restMenuData, rootAppId, newRuntimeContext, helpers),\n computeMenuItems(items, newRuntimeContext, helpers),\n ]);\n\n const finalMenuData: SidebarMenu = {\n title: await fetchMenuTitle(computedMenuData),\n ...pick(computedMenuData, [\n \"icon\",\n \"link\",\n \"defaultCollapsed\",\n \"defaultCollapsedBreakpoint\",\n ]),\n menuItems: transformMenuItems(computedMenuItems)!,\n };\n\n // Todo(steve): reconsider the menu cache strategy\n menuCache.set(menuId, finalMenuData);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fetchMenuById.js","names":["InstanceApi_postSearch","InstalledMicroAppApi_getMenusInfo","omit","pick","checkIfOfComputed","mergeMenu","reorderMenu","computeMenuItems","computeMenuData","fetchMenuTitle","getMenusOfStandaloneApp","preCheckPermissionsForAny","menuPromises","Map","menuCache","transformMenuItems","menuItems","filter","map","item","children","transformedMenuItem","type","title","text","childLayout","items","groupId","groupFrom","length","icon","defaultExpanded","getMenuById","menuId","get","fetchMenuById","runtimeContext","helpers","promise","_fetchMenuById","menuList","window","STANDALONE_MICRO_APPS","app","id","flags","menuObjectId","menus","page","page_size","fields","link","titleDataSource","defaultCollapsed","defaultCollapsedBreakpoint","injectMenuGroupId","dynamicItems","itemsResolve","i18n","query","$eq","$size","$gt","list","menuData","Error","restMenuData","newRuntimeContext","pendingPermissionsPreCheck","tplStateStoreId","forEachItem","forEachIndex","rootAppId","appId","computedMenuData","computedMenuItems","Promise","all","finalMenuData","set"],"sources":["../../../src/menu/fetchMenuById.ts"],"sourcesContent":["import { InstanceApi_postSearch } from \"@next-api-sdk/cmdb-sdk\";\nimport { InstalledMicroAppApi_getMenusInfo } from \"@next-api-sdk/micro-app-sdk\";\nimport { omit, pick } from \"lodash\";\nimport { checkIfOfComputed } from \"@next-core/runtime\";\nimport { mergeMenu } from \"./mergeMenu.js\";\nimport { reorderMenu } from \"./reorderMenuItems.js\";\nimport type {\n MenuRawData,\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n SidebarMenu,\n SidebarMenuItem,\n} from \"./interfaces.js\";\nimport { computeMenuItems, computeMenuData } from \"./computeMenuData.js\";\nimport { fetchMenuTitle } from \"./fetchMenuTitle.js\";\nimport { getMenusOfStandaloneApp } from \"./getMenusOfStandaloneApp.js\";\nimport { preCheckPermissionsForAny } from \"../checkPermissions.js\";\n\nconst menuPromises = new Map<string, Promise<void>>();\n\nconst menuCache = new Map<string, SidebarMenu>();\n\nfunction transformMenuItems(\n menuItems: RuntimeMenuItemRawData[] | undefined\n): SidebarMenuItem[] | undefined {\n return menuItems?.filter(checkIfOfComputed).map((item) => {\n const children = transformMenuItems(item.children);\n const transformedMenuItem: SidebarMenuItem =\n item.type === \"group\"\n ? {\n type: \"group\",\n title: item.text,\n childLayout: item.childLayout,\n items: children,\n groupId: item.groupId,\n groupFrom: item.groupFrom,\n }\n : children?.length\n ? {\n type: \"subMenu\",\n childLayout: item.childLayout,\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded,\n }\n : (omit(item, [\"type\", \"items\", \"children\"]) as SidebarMenuItem);\n return transformedMenuItem;\n });\n}\n\nexport function getMenuById(menuId: string) {\n return menuCache.get(menuId);\n}\n\nexport function fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n) {\n let promise = menuPromises.get(menuId);\n if (!promise) {\n promise = _fetchMenuById(menuId, runtimeContext, helpers);\n }\n return promise;\n}\n\nasync function _fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n) {\n const menuList = window.STANDALONE_MICRO_APPS\n ? getMenusOfStandaloneApp(menuId, runtimeContext.app.id, helpers)\n : runtimeContext.flags[\"three-level-menu-layout\"]\n ? ((\n await InstalledMicroAppApi_getMenusInfo(menuId, {\n menuObjectId: \"EASYOPS_STORYBOARD_MENU\",\n })\n ).menus as MenuRawData[])\n : ((\n await InstanceApi_postSearch(\"EASYOPS_STORYBOARD_MENU\", {\n page: 1,\n page_size: 200,\n fields: {\n menuId: true,\n title: true,\n icon: true,\n link: true,\n titleDataSource: true,\n defaultCollapsed: true,\n defaultCollapsedBreakpoint: true,\n type: true,\n injectMenuGroupId: true,\n dynamicItems: true,\n itemsResolve: true,\n items: true,\n i18n: true,\n \"items.children\": true,\n \"app.appId\": true,\n },\n query: {\n menuId: {\n $eq: menuId,\n },\n app: {\n $size: {\n $gt: 0,\n },\n },\n },\n })\n ).list as MenuRawData[]);\n\n const menuData = await mergeMenu(menuList, runtimeContext, helpers);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n\n reorderMenu(menuData);\n\n const { items, app, ...restMenuData } = menuData;\n const newRuntimeContext: RuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [\n ...runtimeContext.pendingPermissionsPreCheck,\n preCheckPermissionsForAny([items, restMenuData]),\n ],\n };\n delete newRuntimeContext.tplStateStoreId;\n delete newRuntimeContext.forEachItem;\n delete newRuntimeContext.forEachIndex;\n const rootAppId = app[0].appId;\n\n const [computedMenuData, computedMenuItems] = await Promise.all([\n computeMenuData(restMenuData, rootAppId, newRuntimeContext, helpers),\n computeMenuItems(items, newRuntimeContext, helpers),\n ]);\n\n const finalMenuData: SidebarMenu = {\n title: await fetchMenuTitle(computedMenuData),\n ...pick(computedMenuData, [\n \"icon\",\n \"link\",\n \"defaultCollapsed\",\n \"defaultCollapsedBreakpoint\",\n ]),\n menuItems: transformMenuItems(computedMenuItems)!,\n };\n\n // Todo(steve): reconsider the menu cache strategy\n menuCache.set(menuId, finalMenuData);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,39 +1,32 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import { isEmpty } from "lodash";
3
2
  import { InstanceApi_getDetail } from "@next-api-sdk/cmdb-sdk";
4
- var menuTitleCache = new Map();
5
- export function fetchMenuTitle(_x) {
6
- return _fetchMenuTitle.apply(this, arguments);
7
- }
8
- function _fetchMenuTitle() {
9
- _fetchMenuTitle = _asyncToGenerator(function* (menuData) {
10
- if (menuData.title || isEmpty(menuData.titleDataSource)) {
11
- return menuData.title;
12
- }
13
- var cacheKey = JSON.stringify(menuData.titleDataSource);
14
- var cachedTitle = menuTitleCache.get(cacheKey);
15
- if (cachedTitle !== undefined) {
16
- return cachedTitle;
17
- }
18
- var {
19
- objectId,
20
- instanceId,
21
- attributeId
22
- } = menuData.titleDataSource;
23
- var attr = attributeId !== null && attributeId !== void 0 ? attributeId : "name";
24
- var instanceData = yield InstanceApi_getDetail(objectId, instanceId, {
25
- fields: attr
26
- });
27
- var title;
28
- if (attributeId === "#showKey" && Array.isArray(instanceData[attr])) {
29
- var [primary, ...rest] = instanceData[attr];
30
- title = rest.length > 0 ? "".concat(primary, "(").concat(rest.join(","), ")") : String(primary);
31
- } else {
32
- title = String(instanceData[attr]);
33
- }
34
- menuTitleCache.set(cacheKey, title);
35
- return title;
3
+ const menuTitleCache = new Map();
4
+ export async function fetchMenuTitle(menuData) {
5
+ if (menuData.title || isEmpty(menuData.titleDataSource)) {
6
+ return menuData.title;
7
+ }
8
+ const cacheKey = JSON.stringify(menuData.titleDataSource);
9
+ const cachedTitle = menuTitleCache.get(cacheKey);
10
+ if (cachedTitle !== undefined) {
11
+ return cachedTitle;
12
+ }
13
+ const {
14
+ objectId,
15
+ instanceId,
16
+ attributeId
17
+ } = menuData.titleDataSource;
18
+ const attr = attributeId ?? "name";
19
+ const instanceData = await InstanceApi_getDetail(objectId, instanceId, {
20
+ fields: attr
36
21
  });
37
- return _fetchMenuTitle.apply(this, arguments);
22
+ let title;
23
+ if (attributeId === "#showKey" && Array.isArray(instanceData[attr])) {
24
+ const [primary, ...rest] = instanceData[attr];
25
+ title = rest.length > 0 ? `${primary}(${rest.join(",")})` : String(primary);
26
+ } else {
27
+ title = String(instanceData[attr]);
28
+ }
29
+ menuTitleCache.set(cacheKey, title);
30
+ return title;
38
31
  }
39
32
  //# sourceMappingURL=fetchMenuTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMenuTitle.js","names":["isEmpty","InstanceApi_getDetail","menuTitleCache","Map","fetchMenuTitle","_x","_fetchMenuTitle","apply","arguments","_asyncToGenerator","menuData","title","titleDataSource","cacheKey","JSON","stringify","cachedTitle","get","undefined","objectId","instanceId","attributeId","attr","instanceData","fields","Array","isArray","primary","rest","length","concat","join","String","set"],"sources":["../../../src/menu/fetchMenuTitle.ts"],"sourcesContent":["import { isEmpty } from \"lodash\";\nimport { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nimport type { MenuRawData } from \"./interfaces.js\";\n\nconst menuTitleCache = new Map<string, string>();\n\nexport async function fetchMenuTitle(\n menuData: Pick<MenuRawData, \"title\" | \"titleDataSource\">\n): Promise<string> {\n if (menuData.title || isEmpty(menuData.titleDataSource)) {\n return menuData.title;\n }\n const cacheKey = JSON.stringify(menuData.titleDataSource);\n const cachedTitle = menuTitleCache.get(cacheKey);\n if (cachedTitle !== undefined) {\n return cachedTitle;\n }\n const { objectId, instanceId, attributeId } = menuData.titleDataSource;\n const attr = attributeId ?? \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr,\n });\n let title: string;\n if (attributeId === \"#showKey\" && Array.isArray(instanceData[attr])) {\n const [primary, ...rest] = instanceData[attr];\n title = rest.length > 0 ? `${primary}(${rest.join(\",\")})` : String(primary);\n } else {\n title = String(instanceData[attr]);\n }\n menuTitleCache.set(cacheKey, title);\n return title;\n}\n"],"mappings":";AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D,IAAMC,cAAc,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAEhD,gBAAsBC,cAAcA,CAAAC,EAAA;EAAA,OAAAC,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAyBnC,SAAAF,gBAAA;EAAAA,eAAA,GAAAG,iBAAA,CAzBM,WACLC,QAAwD,EACvC;IACjB,IAAIA,QAAQ,CAACC,KAAK,IAAIX,OAAO,CAACU,QAAQ,CAACE,eAAe,CAAC,EAAE;MACvD,OAAOF,QAAQ,CAACC,KAAK;IACvB;IACA,IAAME,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACL,QAAQ,CAACE,eAAe,CAAC;IACzD,IAAMI,WAAW,GAAGd,cAAc,CAACe,GAAG,CAACJ,QAAQ,CAAC;IAChD,IAAIG,WAAW,KAAKE,SAAS,EAAE;MAC7B,OAAOF,WAAW;IACpB;IACA,IAAM;MAAEG,QAAQ;MAAEC,UAAU;MAAEC;IAAY,CAAC,GAAGX,QAAQ,CAACE,eAAe;IACtE,IAAMU,IAAI,GAAGD,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,MAAM;IAClC,IAAME,YAAY,SAAStB,qBAAqB,CAACkB,QAAQ,EAAEC,UAAU,EAAE;MACrEI,MAAM,EAAEF;IACV,CAAC,CAAC;IACF,IAAIX,KAAa;IACjB,IAAIU,WAAW,KAAK,UAAU,IAAII,KAAK,CAACC,OAAO,CAACH,YAAY,CAACD,IAAI,CAAC,CAAC,EAAE;MACnE,IAAM,CAACK,OAAO,EAAE,GAAGC,IAAI,CAAC,GAAGL,YAAY,CAACD,IAAI,CAAC;MAC7CX,KAAK,GAAGiB,IAAI,CAACC,MAAM,GAAG,CAAC,MAAAC,MAAA,CAAMH,OAAO,OAAAG,MAAA,CAAIF,IAAI,CAACG,IAAI,CAAC,GAAG,CAAC,SAAMC,MAAM,CAACL,OAAO,CAAC;IAC7E,CAAC,MAAM;MACLhB,KAAK,GAAGqB,MAAM,CAACT,YAAY,CAACD,IAAI,CAAC,CAAC;IACpC;IACApB,cAAc,CAAC+B,GAAG,CAACpB,QAAQ,EAAEF,KAAK,CAAC;IACnC,OAAOA,KAAK;EACd,CAAC;EAAA,OAAAL,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"fetchMenuTitle.js","names":["isEmpty","InstanceApi_getDetail","menuTitleCache","Map","fetchMenuTitle","menuData","title","titleDataSource","cacheKey","JSON","stringify","cachedTitle","get","undefined","objectId","instanceId","attributeId","attr","instanceData","fields","Array","isArray","primary","rest","length","join","String","set"],"sources":["../../../src/menu/fetchMenuTitle.ts"],"sourcesContent":["import { isEmpty } from \"lodash\";\nimport { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nimport type { MenuRawData } from \"./interfaces.js\";\n\nconst menuTitleCache = new Map<string, string>();\n\nexport async function fetchMenuTitle(\n menuData: Pick<MenuRawData, \"title\" | \"titleDataSource\">\n): Promise<string> {\n if (menuData.title || isEmpty(menuData.titleDataSource)) {\n return menuData.title;\n }\n const cacheKey = JSON.stringify(menuData.titleDataSource);\n const cachedTitle = menuTitleCache.get(cacheKey);\n if (cachedTitle !== undefined) {\n return cachedTitle;\n }\n const { objectId, instanceId, attributeId } = menuData.titleDataSource;\n const attr = attributeId ?? \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr,\n });\n let title: string;\n if (attributeId === \"#showKey\" && Array.isArray(instanceData[attr])) {\n const [primary, ...rest] = instanceData[attr];\n title = rest.length > 0 ? `${primary}(${rest.join(\",\")})` : String(primary);\n } else {\n title = String(instanceData[attr]);\n }\n menuTitleCache.set(cacheKey, title);\n return title;\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAEhD,OAAO,eAAeC,cAAcA,CAClCC,QAAwD,EACvC;EACjB,IAAIA,QAAQ,CAACC,KAAK,IAAIN,OAAO,CAACK,QAAQ,CAACE,eAAe,CAAC,EAAE;IACvD,OAAOF,QAAQ,CAACC,KAAK;EACvB;EACA,MAAME,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACL,QAAQ,CAACE,eAAe,CAAC;EACzD,MAAMI,WAAW,GAAGT,cAAc,CAACU,GAAG,CAACJ,QAAQ,CAAC;EAChD,IAAIG,WAAW,KAAKE,SAAS,EAAE;IAC7B,OAAOF,WAAW;EACpB;EACA,MAAM;IAAEG,QAAQ;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAAGX,QAAQ,CAACE,eAAe;EACtE,MAAMU,IAAI,GAAGD,WAAW,IAAI,MAAM;EAClC,MAAME,YAAY,GAAG,MAAMjB,qBAAqB,CAACa,QAAQ,EAAEC,UAAU,EAAE;IACrEI,MAAM,EAAEF;EACV,CAAC,CAAC;EACF,IAAIX,KAAa;EACjB,IAAIU,WAAW,KAAK,UAAU,IAAII,KAAK,CAACC,OAAO,CAACH,YAAY,CAACD,IAAI,CAAC,CAAC,EAAE;IACnE,MAAM,CAACK,OAAO,EAAE,GAAGC,IAAI,CAAC,GAAGL,YAAY,CAACD,IAAI,CAAC;IAC7CX,KAAK,GAAGiB,IAAI,CAACC,MAAM,GAAG,CAAC,GAAG,GAAGF,OAAO,IAAIC,IAAI,CAACE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAGC,MAAM,CAACJ,OAAO,CAAC;EAC7E,CAAC,MAAM;IACLhB,KAAK,GAAGoB,MAAM,CAACR,YAAY,CAACD,IAAI,CAAC,CAAC;EACpC;EACAf,cAAc,CAACyB,GAAG,CAACnB,QAAQ,EAAEF,KAAK,CAAC;EACnC,OAAOA,KAAK;AACd","ignoreList":[]}
@@ -1,16 +1,18 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
1
  export function getMenusOfStandaloneApp(menuId, appId, helpers) {
3
- var _ref, _storyboard$meta$inje, _storyboard$meta, _storyboard$meta2;
2
+ var _storyboard$meta, _storyboard$meta2;
4
3
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
5
- var storyboard = helpers.getStoryboardByAppId(appId);
6
- var menus = (_ref = (_storyboard$meta$inje = (_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.injectMenus) !== null && _storyboard$meta$inje !== void 0 ? _storyboard$meta$inje : (_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.menus) !== null && _ref !== void 0 ? _ref : [];
4
+ const storyboard = helpers.getStoryboardByAppId(appId);
5
+ const menus = ((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.injectMenus) ?? ((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.menus) ?? [];
7
6
  return menus.filter(menu => menu.menuId === menuId).map(menu => {
8
7
  var _menu$app;
9
- return _objectSpread(_objectSpread({}, menu), (_menu$app = menu.app) !== null && _menu$app !== void 0 && (_menu$app = _menu$app[0]) !== null && _menu$app !== void 0 && _menu$app.appId ? {} : {
10
- app: [{
11
- appId
12
- }]
13
- });
8
+ return {
9
+ ...menu,
10
+ ...((_menu$app = menu.app) !== null && _menu$app !== void 0 && (_menu$app = _menu$app[0]) !== null && _menu$app !== void 0 && _menu$app.appId ? {} : {
11
+ app: [{
12
+ appId
13
+ }]
14
+ })
15
+ };
14
16
  });
15
17
 
16
18
  // Todo: maybe: fetch menus from STANDALONE_MENU@EASYOPS
@@ -1 +1 @@
1
- {"version":3,"file":"getMenusOfStandaloneApp.js","names":["getMenusOfStandaloneApp","menuId","appId","helpers","_ref","_storyboard$meta$inje","_storyboard$meta","_storyboard$meta2","storyboard","getStoryboardByAppId","menus","meta","injectMenus","filter","menu","map","_menu$app","_objectSpread","app"],"sources":["../../../src/menu/getMenusOfStandaloneApp.ts"],"sourcesContent":["import { MenuRawData, RuntimeHelpers } from \"./interfaces.js\";\n\nexport function getMenusOfStandaloneApp(\n menuId: string,\n appId: string,\n helpers: RuntimeHelpers\n): MenuRawData[] {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storyboard = helpers.getStoryboardByAppId(appId)!;\n const menus = (storyboard.meta?.injectMenus ??\n storyboard.meta?.menus ??\n []) as MenuRawData[];\n\n return menus\n .filter((menu) => menu.menuId === menuId)\n .map((menu) => ({\n ...menu,\n ...(menu.app?.[0]?.appId ? {} : { app: [{ appId }] }),\n }));\n\n // Todo: maybe: fetch menus from STANDALONE_MENU@EASYOPS\n}\n"],"mappings":";AAEA,OAAO,SAASA,uBAAuBA,CACrCC,MAAc,EACdC,KAAa,EACbC,OAAuB,EACR;EAAA,IAAAC,IAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,iBAAA;EACf;EACA,IAAMC,UAAU,GAAGL,OAAO,CAACM,oBAAoB,CAACP,KAAK,CAAE;EACvD,IAAMQ,KAAK,IAAAN,IAAA,IAAAC,qBAAA,IAAAC,gBAAA,GAAIE,UAAU,CAACG,IAAI,cAAAL,gBAAA,uBAAfA,gBAAA,CAAiBM,WAAW,cAAAP,qBAAA,cAAAA,qBAAA,IAAAE,iBAAA,GACzCC,UAAU,CAACG,IAAI,cAAAJ,iBAAA,uBAAfA,iBAAA,CAAiBG,KAAK,cAAAN,IAAA,cAAAA,IAAA,GACtB,EAAoB;EAEtB,OAAOM,KAAK,CACTG,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACb,MAAM,KAAKA,MAAM,CAAC,CACxCc,GAAG,CAAED,IAAI;IAAA,IAAAE,SAAA;IAAA,OAAAC,aAAA,CAAAA,aAAA,KACLH,IAAI,GACH,CAAAE,SAAA,GAAAF,IAAI,CAACI,GAAG,cAAAF,SAAA,gBAAAA,SAAA,GAARA,SAAA,CAAW,CAAC,CAAC,cAAAA,SAAA,eAAbA,SAAA,CAAed,KAAK,GAAG,CAAC,CAAC,GAAG;MAAEgB,GAAG,EAAE,CAAC;QAAEhB;MAAM,CAAC;IAAE,CAAC;EAAA,CACpD,CAAC;;EAEL;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getMenusOfStandaloneApp.js","names":["getMenusOfStandaloneApp","menuId","appId","helpers","_storyboard$meta","_storyboard$meta2","storyboard","getStoryboardByAppId","menus","meta","injectMenus","filter","menu","map","_menu$app","app"],"sources":["../../../src/menu/getMenusOfStandaloneApp.ts"],"sourcesContent":["import { MenuRawData, RuntimeHelpers } from \"./interfaces.js\";\n\nexport function getMenusOfStandaloneApp(\n menuId: string,\n appId: string,\n helpers: RuntimeHelpers\n): MenuRawData[] {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storyboard = helpers.getStoryboardByAppId(appId)!;\n const menus = (storyboard.meta?.injectMenus ??\n storyboard.meta?.menus ??\n []) as MenuRawData[];\n\n return menus\n .filter((menu) => menu.menuId === menuId)\n .map((menu) => ({\n ...menu,\n ...(menu.app?.[0]?.appId ? {} : { app: [{ appId }] }),\n }));\n\n // Todo: maybe: fetch menus from STANDALONE_MENU@EASYOPS\n}\n"],"mappings":"AAEA,OAAO,SAASA,uBAAuBA,CACrCC,MAAc,EACdC,KAAa,EACbC,OAAuB,EACR;EAAA,IAAAC,gBAAA,EAAAC,iBAAA;EACf;EACA,MAAMC,UAAU,GAAGH,OAAO,CAACI,oBAAoB,CAACL,KAAK,CAAE;EACvD,MAAMM,KAAK,GAAI,EAAAJ,gBAAA,GAAAE,UAAU,CAACG,IAAI,cAAAL,gBAAA,uBAAfA,gBAAA,CAAiBM,WAAW,OAAAL,iBAAA,GACzCC,UAAU,CAACG,IAAI,cAAAJ,iBAAA,uBAAfA,iBAAA,CAAiBG,KAAK,KACtB,EAAoB;EAEtB,OAAOA,KAAK,CACTG,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACX,MAAM,KAAKA,MAAM,CAAC,CACxCY,GAAG,CAAED,IAAI;IAAA,IAAAE,SAAA;IAAA,OAAM;MACd,GAAGF,IAAI;MACP,IAAI,CAAAE,SAAA,GAAAF,IAAI,CAACG,GAAG,cAAAD,SAAA,gBAAAA,SAAA,GAARA,SAAA,CAAW,CAAC,CAAC,cAAAA,SAAA,eAAbA,SAAA,CAAeZ,KAAK,GAAG,CAAC,CAAC,GAAG;QAAEa,GAAG,EAAE,CAAC;UAAEb;QAAM,CAAC;MAAE,CAAC;IACtD,CAAC;EAAA,CAAC,CAAC;;EAEL;AACF","ignoreList":[]}
@@ -1,27 +1,21 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
1
  import { preCheckPermissionsForAny } from "../checkPermissions.js";
4
- export function loadDynamicMenuItems(_x, _x2, _x3, _x4) {
5
- return _loadDynamicMenuItems.apply(this, arguments);
6
- }
7
- function _loadDynamicMenuItems() {
8
- _loadDynamicMenuItems = _asyncToGenerator(function* (menu, runtimeContext, menuWithI18n, helpers) {
9
- if (menu.dynamicItems && menu.itemsResolve) {
10
- var overrideAppId = menu.app[0].appId;
11
- var newRuntimeContext = _objectSpread(_objectSpread({}, runtimeContext), {}, {
12
- pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny(menu.itemsResolve)]
13
- });
14
- if (overrideAppId !== runtimeContext.app.id) {
15
- var _helpers$getStoryboar;
16
- newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS ? menu.overrideApp : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;
17
- newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);
18
- }
19
- var resolved = yield helpers.resolveData(_objectSpread({
20
- transform: "items"
21
- }, menu.itemsResolve), newRuntimeContext);
22
- menu.items = resolved.items;
2
+ export async function loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers) {
3
+ if (menu.dynamicItems && menu.itemsResolve) {
4
+ const overrideAppId = menu.app[0].appId;
5
+ const newRuntimeContext = {
6
+ ...runtimeContext,
7
+ pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny(menu.itemsResolve)]
8
+ };
9
+ if (overrideAppId !== runtimeContext.app.id) {
10
+ var _helpers$getStoryboar;
11
+ newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS ? menu.overrideApp : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;
12
+ newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);
23
13
  }
24
- });
25
- return _loadDynamicMenuItems.apply(this, arguments);
14
+ const resolved = await helpers.resolveData({
15
+ transform: "items",
16
+ ...menu.itemsResolve
17
+ }, newRuntimeContext);
18
+ menu.items = resolved.items;
19
+ }
26
20
  }
27
21
  //# sourceMappingURL=loadDynamicMenuItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadDynamicMenuItems.js","names":["preCheckPermissionsForAny","loadDynamicMenuItems","_x","_x2","_x3","_x4","_loadDynamicMenuItems","apply","arguments","_asyncToGenerator","menu","runtimeContext","menuWithI18n","helpers","dynamicItems","itemsResolve","overrideAppId","app","appId","newRuntimeContext","_objectSpread","pendingPermissionsPreCheck","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","appendI18nNamespace","get","resolved","resolveData","transform","items"],"sources":["../../../src/menu/loadDynamicMenuItems.ts"],"sourcesContent":["import { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nimport type {\n RuntimeContext,\n MenuItemRawData,\n MenuRawData,\n RuntimeHelpers,\n} from \"./interfaces.js\";\n\nexport async function loadDynamicMenuItems(\n menu: MenuRawData,\n runtimeContext: RuntimeContext,\n menuWithI18n: WeakMap<MenuRawData, string>,\n helpers: RuntimeHelpers\n): Promise<void> {\n if (menu.dynamicItems && menu.itemsResolve) {\n const overrideAppId = menu.app[0].appId;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [\n ...runtimeContext.pendingPermissionsPreCheck,\n preCheckPermissionsForAny(menu.itemsResolve),\n ],\n };\n if (overrideAppId !== runtimeContext.app.id) {\n newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS\n ? menu.overrideApp\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);\n }\n\n const resolved = (await helpers.resolveData(\n {\n transform: \"items\",\n ...menu.itemsResolve,\n },\n newRuntimeContext\n )) as { items: MenuItemRawData[] };\n menu.items = resolved.items;\n }\n}\n"],"mappings":";;AAAA,SAASA,yBAAyB,QAAQ,wBAAwB;AAQlE,gBAAsBC,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AA+BzC,SAAAF,sBAAA;EAAAA,qBAAA,GAAAG,iBAAA,CA/BM,WACLC,IAAiB,EACjBC,cAA8B,EAC9BC,YAA0C,EAC1CC,OAAuB,EACR;IACf,IAAIH,IAAI,CAACI,YAAY,IAAIJ,IAAI,CAACK,YAAY,EAAE;MAC1C,IAAMC,aAAa,GAAGN,IAAI,CAACO,GAAG,CAAC,CAAC,CAAC,CAACC,KAAK;MACvC,IAAMC,iBAAiB,GAAAC,aAAA,CAAAA,aAAA,KAClBT,cAAc;QACjBU,0BAA0B,EAAE,CAC1B,GAAGV,cAAc,CAACU,0BAA0B,EAC5CrB,yBAAyB,CAACU,IAAI,CAACK,YAAY,CAAC;MAC7C,EACF;MACD,IAAIC,aAAa,KAAKL,cAAc,CAACM,GAAG,CAACK,EAAE,EAAE;QAAA,IAAAC,qBAAA;QAC3CJ,iBAAiB,CAACK,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GACxDhB,IAAI,CAACc,WAAW,IAAAD,qBAAA,GAChBV,OAAO,CAACc,oBAAoB,CAACX,aAAa,CAAC,cAAAO,qBAAA,uBAA3CA,qBAAA,CAA6CN,GAAG;QACpDE,iBAAiB,CAACS,mBAAmB,GAAGhB,YAAY,CAACiB,GAAG,CAACnB,IAAI,CAAC;MAChE;MAEA,IAAMoB,QAAQ,SAAUjB,OAAO,CAACkB,WAAW,CAAAX,aAAA;QAEvCY,SAAS,EAAE;MAAO,GACftB,IAAI,CAACK,YAAY,GAEtBI,iBACF,CAAkC;MAClCT,IAAI,CAACuB,KAAK,GAAGH,QAAQ,CAACG,KAAK;IAC7B;EACF,CAAC;EAAA,OAAA3B,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"loadDynamicMenuItems.js","names":["preCheckPermissionsForAny","loadDynamicMenuItems","menu","runtimeContext","menuWithI18n","helpers","dynamicItems","itemsResolve","overrideAppId","app","appId","newRuntimeContext","pendingPermissionsPreCheck","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","appendI18nNamespace","get","resolved","resolveData","transform","items"],"sources":["../../../src/menu/loadDynamicMenuItems.ts"],"sourcesContent":["import { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nimport type {\n RuntimeContext,\n MenuItemRawData,\n MenuRawData,\n RuntimeHelpers,\n} from \"./interfaces.js\";\n\nexport async function loadDynamicMenuItems(\n menu: MenuRawData,\n runtimeContext: RuntimeContext,\n menuWithI18n: WeakMap<MenuRawData, string>,\n helpers: RuntimeHelpers\n): Promise<void> {\n if (menu.dynamicItems && menu.itemsResolve) {\n const overrideAppId = menu.app[0].appId;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [\n ...runtimeContext.pendingPermissionsPreCheck,\n preCheckPermissionsForAny(menu.itemsResolve),\n ],\n };\n if (overrideAppId !== runtimeContext.app.id) {\n newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS\n ? menu.overrideApp\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);\n }\n\n const resolved = (await helpers.resolveData(\n {\n transform: \"items\",\n ...menu.itemsResolve,\n },\n newRuntimeContext\n )) as { items: MenuItemRawData[] };\n menu.items = resolved.items;\n }\n}\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,wBAAwB;AAQlE,OAAO,eAAeC,oBAAoBA,CACxCC,IAAiB,EACjBC,cAA8B,EAC9BC,YAA0C,EAC1CC,OAAuB,EACR;EACf,IAAIH,IAAI,CAACI,YAAY,IAAIJ,IAAI,CAACK,YAAY,EAAE;IAC1C,MAAMC,aAAa,GAAGN,IAAI,CAACO,GAAG,CAAC,CAAC,CAAC,CAACC,KAAK;IACvC,MAAMC,iBAAiB,GAAG;MACxB,GAAGR,cAAc;MACjBS,0BAA0B,EAAE,CAC1B,GAAGT,cAAc,CAACS,0BAA0B,EAC5CZ,yBAAyB,CAACE,IAAI,CAACK,YAAY,CAAC;IAEhD,CAAC;IACD,IAAIC,aAAa,KAAKL,cAAc,CAACM,GAAG,CAACI,EAAE,EAAE;MAAA,IAAAC,qBAAA;MAC3CH,iBAAiB,CAACI,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GACxDf,IAAI,CAACa,WAAW,IAAAD,qBAAA,GAChBT,OAAO,CAACa,oBAAoB,CAACV,aAAa,CAAC,cAAAM,qBAAA,uBAA3CA,qBAAA,CAA6CL,GAAG;MACpDE,iBAAiB,CAACQ,mBAAmB,GAAGf,YAAY,CAACgB,GAAG,CAAClB,IAAI,CAAC;IAChE;IAEA,MAAMmB,QAAQ,GAAI,MAAMhB,OAAO,CAACiB,WAAW,CACzC;MACEC,SAAS,EAAE,OAAO;MAClB,GAAGrB,IAAI,CAACK;IACV,CAAC,EACDI,iBACF,CAAkC;IAClCT,IAAI,CAACsB,KAAK,GAAGH,QAAQ,CAACG,KAAK;EAC7B;AACF","ignoreList":[]}
@@ -1,77 +1,67 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
1
  import { i18n } from "@next-core/i18n";
4
2
  import { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from "./constants.js";
5
3
  import { loadDynamicMenuItems } from "./loadDynamicMenuItems.js";
6
- export function mergeMenu(_x, _x2, _x3) {
7
- return _mergeMenu.apply(this, arguments);
8
- }
9
- function _mergeMenu() {
10
- _mergeMenu = _asyncToGenerator(function* (menuList, runtimeContext, helpers) {
11
- var mainMenu = menuList.find(menu => menu.type !== "inject");
12
- if (!mainMenu) {
13
- return undefined;
14
- }
15
- var validMenuList = [];
16
- var injectWithMenus = new Map();
17
- var menuWithI18n = new WeakMap();
18
- var _loop = function* () {
19
- if (menu.i18n) {
20
- var menuI18nNamespace = "menu/".concat(menu.menuId, "~").concat(menu.app[0].appId, "+").concat(menu.instanceId);
21
- // Support any language in `menu.i18n`.
22
- Object.entries(menu.i18n).forEach(_ref => {
23
- var [lang, resources] = _ref;
24
- i18n.addResourceBundle(lang, menuI18nNamespace, resources);
25
- });
26
- menuWithI18n.set(menu, menuI18nNamespace);
27
- }
28
- };
29
- for (var menu of menuList) {
30
- yield* _loop();
4
+ export async function mergeMenu(menuList, runtimeContext, helpers) {
5
+ const mainMenu = menuList.find(menu => menu.type !== "inject");
6
+ if (!mainMenu) {
7
+ return undefined;
8
+ }
9
+ const validMenuList = [];
10
+ const injectWithMenus = new Map();
11
+ const menuWithI18n = new WeakMap();
12
+ for (const menu of menuList) {
13
+ if (menu.i18n) {
14
+ const menuI18nNamespace = `menu/${menu.menuId}~${menu.app[0].appId}+${menu.instanceId}`;
15
+ // Support any language in `menu.i18n`.
16
+ Object.entries(menu.i18n).forEach(_ref => {
17
+ let [lang, resources] = _ref;
18
+ i18n.addResourceBundle(lang, menuI18nNamespace, resources);
19
+ });
20
+ menuWithI18n.set(menu, menuI18nNamespace);
31
21
  }
32
- yield Promise.all(menuList.map(menu => loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)));
33
- for (var _menu of menuList) {
34
- var _menu$items;
35
- if ((_menu$items = _menu.items) !== null && _menu$items !== void 0 && _menu$items.length) {
36
- if (_menu.type === "inject" && _menu.injectMenuGroupId) {
37
- var injectingMenus = injectWithMenus.get(_menu.injectMenuGroupId);
38
- if (!injectingMenus) {
39
- injectingMenus = [];
40
- injectWithMenus.set(_menu.injectMenuGroupId, injectingMenus);
41
- }
42
- injectingMenus.push(_menu);
43
- } else {
44
- validMenuList.push(_menu);
22
+ }
23
+ await Promise.all(menuList.map(menu => loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)));
24
+ for (const menu of menuList) {
25
+ var _menu$items;
26
+ if ((_menu$items = menu.items) !== null && _menu$items !== void 0 && _menu$items.length) {
27
+ if (menu.type === "inject" && menu.injectMenuGroupId) {
28
+ let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);
29
+ if (!injectingMenus) {
30
+ injectingMenus = [];
31
+ injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);
45
32
  }
33
+ injectingMenus.push(menu);
34
+ } else {
35
+ validMenuList.push(menu);
46
36
  }
47
37
  }
48
- return _objectSpread(_objectSpread({}, mainMenu), {}, {
49
- items: validMenuList.flatMap(menu =>
50
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
51
- processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)),
52
- [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),
53
- [symbolOverrideApp]: mainMenu.overrideApp
54
- });
55
- });
56
- return _mergeMenu.apply(this, arguments);
38
+ }
39
+ return {
40
+ ...mainMenu,
41
+ items: validMenuList.flatMap(menu =>
42
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
43
+ processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)),
44
+ [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),
45
+ [symbolOverrideApp]: mainMenu.overrideApp
46
+ };
57
47
  }
58
48
  function processGroupInject(items, menu, injectWithMenus, menuWithI18n) {
59
49
  return items === null || items === void 0 ? void 0 : items.map(item => {
60
- var _processGroupInject;
61
- var foundInjectingMenus = item.groupId && injectWithMenus.get(item.groupId);
50
+ const foundInjectingMenus = item.groupId && injectWithMenus.get(item.groupId);
62
51
  if (foundInjectingMenus) {
63
52
  // Each menu to be injected with should be injected only once.
64
53
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
65
54
  injectWithMenus.delete(item.groupId);
66
55
  }
67
- return _objectSpread(_objectSpread({}, item), {}, {
68
- children: ((_processGroupInject = processGroupInject(item.children, menu, injectWithMenus, menuWithI18n)) !== null && _processGroupInject !== void 0 ? _processGroupInject : []).concat(foundInjectingMenus ? foundInjectingMenus.flatMap(injectingMenu =>
56
+ return {
57
+ ...item,
58
+ children: (processGroupInject(item.children, menu, injectWithMenus, menuWithI18n) ?? []).concat(foundInjectingMenus ? foundInjectingMenus.flatMap(injectingMenu =>
69
59
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
70
60
  processGroupInject(injectingMenu.items, injectingMenu, injectWithMenus, menuWithI18n)) : []),
71
61
  [symbolAppId]: menu.app[0].appId,
72
62
  [symbolMenuI18nNamespace]: menuWithI18n.get(menu),
73
63
  [symbolOverrideApp]: menu.overrideApp
74
- });
64
+ };
75
65
  });
76
66
  }
77
67
  //# sourceMappingURL=mergeMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeMenu.js","names":["i18n","symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","loadDynamicMenuItems","mergeMenu","_x","_x2","_x3","_mergeMenu","apply","arguments","_asyncToGenerator","menuList","runtimeContext","helpers","mainMenu","find","menu","type","undefined","validMenuList","injectWithMenus","Map","menuWithI18n","WeakMap","_loop","menuI18nNamespace","concat","menuId","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","Promise","all","map","_menu$items","items","length","injectMenuGroupId","injectingMenus","get","push","_objectSpread","flatMap","processGroupInject","overrideApp","item","_processGroupInject","foundInjectingMenus","groupId","delete","children","injectingMenu"],"sources":["../../../src/menu/mergeMenu.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport type {\n RuntimeContext,\n MenuItemRawData,\n MenuRawData,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n RuntimeHelpers,\n} from \"./interfaces.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\n\nexport async function mergeMenu(\n menuList: MenuRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuRawData | undefined> {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = `menu/${menu.menuId}~${menu.app[0].appId}+${\n (menu as { instanceId?: string }).instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n\n await Promise.all(\n menuList.map((menu) =>\n loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)\n )\n );\n\n for (const menu of menuList) {\n if (menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n return {\n ...mainMenu,\n items: validMenuList.flatMap(\n (menu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n ),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp,\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp,\n };\n });\n}\n"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,SACEC,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;AASvB,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,gBAAsBC,SAASA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAyD9B,SAAAF,WAAA;EAAAA,UAAA,GAAAG,iBAAA,CAzDM,WACLC,QAAuB,EACvBC,cAA8B,EAC9BC,OAAuB,EACkB;IACzC,IAAMC,QAAQ,GAAGH,QAAQ,CAACI,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAK,QAAQ,CAAC;IAChE,IAAI,CAACH,QAAQ,EAAE;MACb,OAAOI,SAAS;IAClB;IACA,IAAMC,aAA4B,GAAG,EAAE;IACvC,IAAMC,eAAe,GAAG,IAAIC,GAAG,CAAwB,CAAC;IACxD,IAAMC,YAAY,GAAG,IAAIC,OAAO,CAAsB,CAAC;IAAC,IAAAC,KAAA,aAAAA,CAAA,EAE3B;MAC3B,IAAIR,IAAI,CAAClB,IAAI,EAAE;QACb,IAAM2B,iBAAiB,WAAAC,MAAA,CAAWV,IAAI,CAACW,MAAM,OAAAD,MAAA,CAAIV,IAAI,CAACY,GAAG,CAAC,CAAC,CAAC,CAACC,KAAK,OAAAH,MAAA,CAC/DV,IAAI,CAA6Bc,UAAU,CAC5C;QACF;QACAC,MAAM,CAACC,OAAO,CAAChB,IAAI,CAAClB,IAAI,CAAC,CAACmC,OAAO,CAACC,IAAA,IAAuB;UAAA,IAAtB,CAACC,IAAI,EAAEC,SAAS,CAAC,GAAAF,IAAA;UAClDpC,IAAI,CAACuC,iBAAiB,CAACF,IAAI,EAAEV,iBAAiB,EAAEW,SAAS,CAAC;QAC5D,CAAC,CAAC;QACFd,YAAY,CAACgB,GAAG,CAACtB,IAAI,EAAES,iBAAiB,CAAC;MAC3C;IACF,CAAC;IAXD,KAAK,IAAMT,IAAI,IAAIL,QAAQ;MAAA,OAAAa,KAAA;IAAA;IAa3B,MAAMe,OAAO,CAACC,GAAG,CACf7B,QAAQ,CAAC8B,GAAG,CAAEzB,IAAI,IAChBd,oBAAoB,CAACc,IAAI,EAAEJ,cAAc,EAAEU,YAAY,EAAET,OAAO,CAClE,CACF,CAAC;IAED,KAAK,IAAMG,KAAI,IAAIL,QAAQ,EAAE;MAAA,IAAA+B,WAAA;MAC3B,KAAAA,WAAA,GAAI1B,KAAI,CAAC2B,KAAK,cAAAD,WAAA,eAAVA,WAAA,CAAYE,MAAM,EAAE;QACtB,IAAI5B,KAAI,CAACC,IAAI,KAAK,QAAQ,IAAID,KAAI,CAAC6B,iBAAiB,EAAE;UACpD,IAAIC,cAAc,GAAG1B,eAAe,CAAC2B,GAAG,CAAC/B,KAAI,CAAC6B,iBAAiB,CAAC;UAChE,IAAI,CAACC,cAAc,EAAE;YACnBA,cAAc,GAAG,EAAE;YACnB1B,eAAe,CAACkB,GAAG,CAACtB,KAAI,CAAC6B,iBAAiB,EAAEC,cAAc,CAAC;UAC7D;UACAA,cAAc,CAACE,IAAI,CAAChC,KAAI,CAAC;QAC3B,CAAC,MAAM;UACLG,aAAa,CAAC6B,IAAI,CAAChC,KAAI,CAAC;QAC1B;MACF;IACF;IAEA,OAAAiC,aAAA,CAAAA,aAAA,KACKnC,QAAQ;MACX6B,KAAK,EAAExB,aAAa,CAAC+B,OAAO,CACzBlC,IAAI;MACH;MACAmC,kBAAkB,CAACnC,IAAI,CAAC2B,KAAK,EAAE3B,IAAI,EAAEI,eAAe,EAAEE,YAAY,CACtE,CAAC;MACD,CAACtB,uBAAuB,GAAGsB,YAAY,CAACyB,GAAG,CAACjC,QAAQ,CAAC;MACrD,CAACb,iBAAiB,GAAGa,QAAQ,CAACsC;IAAW;EAE7C,CAAC;EAAA,OAAA7C,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAS0C,kBAAkBA,CACzBR,KAAoC,EACpC3B,IAAiB,EACjBI,eAA2C,EAC3CE,YAA0C,EACJ;EACtC,OAAOqB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEF,GAAG,CAAEY,IAAI,IAAK;IAAA,IAAAC,mBAAA;IAC1B,IAAMC,mBAAmB,GACvBF,IAAI,CAACG,OAAO,IAAIpC,eAAe,CAAC2B,GAAG,CAACM,IAAI,CAACG,OAAO,CAAC;IACnD,IAAID,mBAAmB,EAAE;MACvB;MACA;MACAnC,eAAe,CAACqC,MAAM,CAACJ,IAAI,CAACG,OAAQ,CAAC;IACvC;IACA,OAAAP,aAAA,CAAAA,aAAA,KACKI,IAAI;MACPK,QAAQ,EAAE,EAAAJ,mBAAA,GACRH,kBAAkB,CAChBE,IAAI,CAACK,QAAQ,EACb1C,IAAI,EACJI,eAAe,EACfE,YACF,CAAC,cAAAgC,mBAAA,cAAAA,mBAAA,GAAK,EAAE,EACR5B,MAAM,CACN6B,mBAAmB,GACfA,mBAAmB,CAACL,OAAO,CACxBS,aAAa;MACZ;MACAR,kBAAkB,CAChBQ,aAAa,CAAChB,KAAK,EACnBgB,aAAa,EACbvC,eAAe,EACfE,YACF,CACJ,CAAC,GACA,EACP,CAAC;MACD,CAACvB,WAAW,GAAGiB,IAAI,CAACY,GAAG,CAAC,CAAC,CAAC,CAACC,KAAK;MAChC,CAAC7B,uBAAuB,GAAGsB,YAAY,CAACyB,GAAG,CAAC/B,IAAI,CAAC;MACjD,CAACf,iBAAiB,GAAGe,IAAI,CAACoC;IAAW;EAEzC,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"mergeMenu.js","names":["i18n","symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","loadDynamicMenuItems","mergeMenu","menuList","runtimeContext","helpers","mainMenu","find","menu","type","undefined","validMenuList","injectWithMenus","Map","menuWithI18n","WeakMap","menuI18nNamespace","menuId","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","Promise","all","map","_menu$items","items","length","injectMenuGroupId","injectingMenus","get","push","flatMap","processGroupInject","overrideApp","item","foundInjectingMenus","groupId","delete","children","concat","injectingMenu"],"sources":["../../../src/menu/mergeMenu.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport type {\n RuntimeContext,\n MenuItemRawData,\n MenuRawData,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n RuntimeHelpers,\n} from \"./interfaces.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\n\nexport async function mergeMenu(\n menuList: MenuRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuRawData | undefined> {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = `menu/${menu.menuId}~${menu.app[0].appId}+${\n (menu as { instanceId?: string }).instanceId\n }`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n\n await Promise.all(\n menuList.map((menu) =>\n loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)\n )\n );\n\n for (const menu of menuList) {\n if (menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n return {\n ...mainMenu,\n items: validMenuList.flatMap(\n (menu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n ),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp,\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp,\n };\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,14 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
1
  import { sortBy } from "lodash";
3
2
  export function reorderMenu(menuData) {
4
3
  menuData.items = reorderMenuItems(menuData.items);
5
4
  }
6
5
  function reorderMenuItems(list) {
7
- return sortMenuItems(list).map(item => _objectSpread(_objectSpread({}, item), {}, {
6
+ return sortMenuItems(list).map(item => ({
7
+ ...item,
8
8
  children: reorderMenuItems(item.children)
9
9
  }));
10
10
  }
11
11
  function sortMenuItems(list) {
12
- return sortBy(list, item => {
13
- var _item$sort;
14
- return (_item$sort = item.sort) !== null && _item$sort !== void 0 ? _item$sort : -Infinity;
15
- });
12
+ return sortBy(list, item => item.sort ?? -Infinity);
16
13
  }
17
14
  //# sourceMappingURL=reorderMenuItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reorderMenuItems.js","names":["sortBy","reorderMenu","menuData","items","reorderMenuItems","list","sortMenuItems","map","item","_objectSpread","children","_item$sort","sort","Infinity"],"sources":["../../../src/menu/reorderMenuItems.ts"],"sourcesContent":["import { sortBy } from \"lodash\";\nimport { MenuItemRawData, MenuRawData } from \"./interfaces.js\";\n\nexport function reorderMenu(menuData: MenuRawData): void {\n menuData.items = reorderMenuItems(menuData.items);\n}\n\nfunction reorderMenuItems(\n list: MenuItemRawData[] | undefined\n): MenuItemRawData[] {\n return sortMenuItems(list).map((item) => ({\n ...item,\n children: reorderMenuItems(item.children),\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[] | undefined): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity);\n}\n"],"mappings":";AAAA,SAASA,MAAM,QAAQ,QAAQ;AAG/B,OAAO,SAASC,WAAWA,CAACC,QAAqB,EAAQ;EACvDA,QAAQ,CAACC,KAAK,GAAGC,gBAAgB,CAACF,QAAQ,CAACC,KAAK,CAAC;AACnD;AAEA,SAASC,gBAAgBA,CACvBC,IAAmC,EAChB;EACnB,OAAOC,aAAa,CAACD,IAAI,CAAC,CAACE,GAAG,CAAEC,IAAI,IAAAC,aAAA,CAAAA,aAAA,KAC/BD,IAAI;IACPE,QAAQ,EAAEN,gBAAgB,CAACI,IAAI,CAACE,QAAQ;EAAC,EACzC,CAAC;AACL;AAEA,SAASJ,aAAaA,CAACD,IAAmC,EAAqB;EAC7E,OAAOL,MAAM,CAACK,IAAI,EAAGG,IAAI;IAAA,IAAAG,UAAA;IAAA,QAAAA,UAAA,GAAKH,IAAI,CAACI,IAAI,cAAAD,UAAA,cAAAA,UAAA,GAAI,CAACE,QAAQ;EAAA,EAAC;AACvD","ignoreList":[]}
1
+ {"version":3,"file":"reorderMenuItems.js","names":["sortBy","reorderMenu","menuData","items","reorderMenuItems","list","sortMenuItems","map","item","children","sort","Infinity"],"sources":["../../../src/menu/reorderMenuItems.ts"],"sourcesContent":["import { sortBy } from \"lodash\";\nimport { MenuItemRawData, MenuRawData } from \"./interfaces.js\";\n\nexport function reorderMenu(menuData: MenuRawData): void {\n menuData.items = reorderMenuItems(menuData.items);\n}\n\nfunction reorderMenuItems(\n list: MenuItemRawData[] | undefined\n): MenuItemRawData[] {\n return sortMenuItems(list).map((item) => ({\n ...item,\n children: reorderMenuItems(item.children),\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[] | undefined): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity);\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAG/B,OAAO,SAASC,WAAWA,CAACC,QAAqB,EAAQ;EACvDA,QAAQ,CAACC,KAAK,GAAGC,gBAAgB,CAACF,QAAQ,CAACC,KAAK,CAAC;AACnD;AAEA,SAASC,gBAAgBA,CACvBC,IAAmC,EAChB;EACnB,OAAOC,aAAa,CAACD,IAAI,CAAC,CAACE,GAAG,CAAEC,IAAI,KAAM;IACxC,GAAGA,IAAI;IACPC,QAAQ,EAAEL,gBAAgB,CAACI,IAAI,CAACC,QAAQ;EAC1C,CAAC,CAAC,CAAC;AACL;AAEA,SAASH,aAAaA,CAACD,IAAmC,EAAqB;EAC7E,OAAOL,MAAM,CAACK,IAAI,EAAGG,IAAI,IAAKA,IAAI,CAACE,IAAI,IAAI,CAACC,QAAQ,CAAC;AACvD","ignoreList":[]}
@@ -22,19 +22,19 @@ export class MessageDispatcher {
22
22
  _classPrivateFieldInitSpec(this, _channelPayloads, new Map());
23
23
  }
24
24
  subscribe(channel, payload) {
25
- var stringifiedPayload = JSON.stringify(payload);
25
+ const stringifiedPayload = JSON.stringify(payload);
26
26
  return _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, "sub", channel, payload, stringifiedPayload);
27
27
  }
28
28
  unsubscribe(channel) {
29
- var stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);
29
+ const stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);
30
30
  if (!stringifiedPayload) {
31
- var msg = "The message channel to unsubscribe \"".concat(channel, "\" is not found");
31
+ const msg = `The message channel to unsubscribe "${channel}" is not found`;
32
32
  // eslint-disable-next-line no-console
33
33
  console.error(msg);
34
34
  return Promise.reject(new Error(msg));
35
35
  }
36
- var payload = JSON.parse(stringifiedPayload);
37
- var result = _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, "unsub", channel, payload, stringifiedPayload);
36
+ const payload = JSON.parse(stringifiedPayload);
37
+ const result = _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, "unsub", channel, payload, stringifiedPayload);
38
38
  _classPrivateFieldGet(_memoizedChannels, this).sub.delete(stringifiedPayload);
39
39
  result.then(() => {
40
40
  _classPrivateFieldGet(_channelPayloads, this).delete(channel);
@@ -42,8 +42,8 @@ export class MessageDispatcher {
42
42
  return result;
43
43
  }
44
44
  onMessage(channel, listener) {
45
- var stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);
46
- var warned = false;
45
+ let stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);
46
+ let warned = false;
47
47
  _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {
48
48
  if (!stringifiedPayload) {
49
49
  stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);
@@ -51,7 +51,7 @@ export class MessageDispatcher {
51
51
  if (!stringifiedPayload) {
52
52
  if (!warned) {
53
53
  // eslint-disable-next-line no-console
54
- console.error("Message channel: \"".concat(channel, "\" not found"));
54
+ console.error(`Message channel: "${channel}" not found`);
55
55
  warned = true;
56
56
  }
57
57
  return;
@@ -74,26 +74,26 @@ export class MessageDispatcher {
74
74
  }
75
75
  function _get_ms(_this) {
76
76
  if (!_classPrivateFieldGet(_ms, _this)) {
77
- var protocol = location.protocol === "https:" ? "wss:" : "ws:";
78
- var url = "".concat(protocol, "//").concat(window.location.host).concat(getBasePath(), "api/websocket_service/v1/ws");
77
+ const protocol = location.protocol === "https:" ? "wss:" : "ws:";
78
+ const url = `${protocol}//${window.location.host}${getBasePath()}api/websocket_service/v1/ws`;
79
79
  _classPrivateFieldSet(_ms, _this, new MessageService(url));
80
80
  }
81
81
  return _classPrivateFieldGet(_ms, _this);
82
82
  }
83
83
  function _subOrUnsub(type, channel, payload, stringifiedPayload) {
84
- var hit = _classPrivateFieldGet(_memoizedChannels, this)[type].get(stringifiedPayload);
84
+ const hit = _classPrivateFieldGet(_memoizedChannels, this)[type].get(stringifiedPayload);
85
85
  if (hit) {
86
86
  return hit;
87
87
  }
88
- var request = {
88
+ const request = {
89
89
  event: type === "sub" ? "TOPIC.SUB" : "TOPIC.UNSUB",
90
90
  payload
91
91
  };
92
- var promise = new Promise((resolve, reject) => {
93
- var identity = getIdentity(payload);
92
+ const promise = new Promise((resolve, reject) => {
93
+ const identity = getIdentity(payload);
94
94
  _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {
95
- var isSuccess = response.event === (type === "sub" ? "TOPIC.SUB_SUCCESS" : "TOPIC.UNSUB_SUCCESS");
96
- var isFailed = response.event === (type === "sub" ? "TOPIC.SUB_FAILED" : "TOPIC.UNSUB_FAILED");
95
+ const isSuccess = response.event === (type === "sub" ? "TOPIC.SUB_SUCCESS" : "TOPIC.UNSUB_SUCCESS");
96
+ const isFailed = response.event === (type === "sub" ? "TOPIC.SUB_FAILED" : "TOPIC.UNSUB_FAILED");
97
97
  if ((isSuccess || isFailed) &&
98
98
  // Put this after event type checks, to prevent unnecessary
99
99
  // JSON stringify.
@@ -110,7 +110,7 @@ function _subOrUnsub(type, channel, payload, stringifiedPayload) {
110
110
  return promise;
111
111
  }
112
112
  function getIdentity(payload) {
113
- var {
113
+ const {
114
114
  system,
115
115
  topic
116
116
  } = payload;
@@ -120,7 +120,7 @@ function getIdentity(payload) {
120
120
  });
121
121
  }
122
122
  function matchMessageChannel(stringifiedPayload, responsePayload) {
123
- var payload = JSON.parse(stringifiedPayload);
123
+ const payload = JSON.parse(stringifiedPayload);
124
124
  return payload.system === responsePayload.system && (
125
125
  // Exact match
126
126
  payload.topic === responsePayload.topic ||
@@ -128,6 +128,6 @@ function matchMessageChannel(stringifiedPayload, responsePayload) {
128
128
  // For `ab.cd.*`:
129
129
  // - Matches `ab.cd.r` or `ab.cd.x.yz`
130
130
  // - DOES NOT match `ab.cd.x/yz` or `ab.x.cd` or `x.ab.cd.yz`
131
- typeof payload.topic === "string" && payload.topic.includes("*") && new RegExp("^".concat(payload.topic.replace(/([^*]*)\*([^*]*)/g, (_m, p1, p2) => "".concat(escapeRegExp(p1), "[^/]*").concat(escapeRegExp(p2))), "$")).test(responsePayload.topic));
131
+ typeof payload.topic === "string" && payload.topic.includes("*") && new RegExp(`^${payload.topic.replace(/([^*]*)\*([^*]*)/g, (_m, p1, p2) => `${escapeRegExp(p1)}[^/]*${escapeRegExp(p2)}`)}$`).test(responsePayload.topic));
132
132
  }
133
133
  //# sourceMappingURL=MessageDispatcher.js.map