@next-bricks/ai-portal 0.70.1 → 0.70.3

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 (271) hide show
  1. package/dist/bricks.json +45 -45
  2. package/dist/chunks/1097.05983e91.js +3 -0
  3. package/dist/chunks/{1097.9e80dcca.js.LICENSE.txt → 1097.05983e91.js.LICENSE.txt} +2 -0
  4. package/dist/chunks/1097.05983e91.js.map +1 -0
  5. package/dist/chunks/{1889.b7766f77.js → 1889.803775eb.js} +2 -2
  6. package/dist/chunks/{1889.b7766f77.js.map → 1889.803775eb.js.map} +1 -1
  7. package/dist/chunks/3171.9d323cbe.js +2 -0
  8. package/dist/chunks/3171.9d323cbe.js.map +1 -0
  9. package/dist/chunks/{3186.f231329a.js → 3186.ca53075a.js} +2 -2
  10. package/dist/chunks/{3186.f231329a.js.map → 3186.ca53075a.js.map} +1 -1
  11. package/dist/chunks/3840.6080d56e.js +3 -0
  12. package/dist/chunks/3840.6080d56e.js.map +1 -0
  13. package/dist/chunks/{4864.bee3bb30.js → 4864.beefe6d5.js} +2 -2
  14. package/dist/chunks/{4864.bee3bb30.js.map → 4864.beefe6d5.js.map} +1 -1
  15. package/dist/chunks/5399.ef4bb3aa.js +2 -0
  16. package/dist/chunks/5399.ef4bb3aa.js.map +1 -0
  17. package/dist/chunks/551.ae5171a6.js +3 -0
  18. package/dist/chunks/551.ae5171a6.js.map +1 -0
  19. package/dist/chunks/5552.53024929.js +2 -0
  20. package/dist/chunks/5552.53024929.js.map +1 -0
  21. package/dist/chunks/6277.c8a6013f.js +2 -0
  22. package/dist/chunks/6277.c8a6013f.js.map +1 -0
  23. package/dist/chunks/6376.c35ff317.js +2 -0
  24. package/dist/chunks/6376.c35ff317.js.map +1 -0
  25. package/dist/chunks/7669.6f177bf2.js +3 -0
  26. package/dist/chunks/7669.6f177bf2.js.map +1 -0
  27. package/dist/chunks/794.214aa08f.js +3 -0
  28. package/dist/chunks/794.214aa08f.js.map +1 -0
  29. package/dist/chunks/948.c96c7036.js +3 -0
  30. package/dist/chunks/948.c96c7036.js.map +1 -0
  31. package/dist/chunks/action-buttons.68666920.js.map +1 -1
  32. package/dist/chunks/activity-timeline.96e7aaea.js.map +1 -1
  33. package/dist/chunks/ai-agents.cffd08a0.js.map +1 -1
  34. package/dist/chunks/ai-employees.267c3626.js.map +1 -1
  35. package/dist/chunks/blank-state.648eea95.js.map +1 -1
  36. package/dist/chunks/chat-box.060b8727.js +3 -0
  37. package/dist/chunks/chat-box.060b8727.js.map +1 -0
  38. package/dist/chunks/chat-input.e913e9ed.js +3 -0
  39. package/dist/chunks/chat-input.e913e9ed.js.map +1 -0
  40. package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
  41. package/dist/chunks/{chat-panel.3160f2e8.js → chat-panel.63207d2f.js} +2 -2
  42. package/dist/chunks/chat-panel.63207d2f.js.map +1 -0
  43. package/dist/chunks/chat-stream.393c8241.js.map +1 -1
  44. package/dist/chunks/cruise-canvas.bfae3138.js.map +1 -1
  45. package/dist/chunks/dropdown-select.336442ba.js.map +1 -1
  46. package/dist/chunks/elevo-card.49b42ed0.js.map +1 -1
  47. package/dist/chunks/elevo-logo.25e3b889.js.map +1 -1
  48. package/dist/chunks/elevo-sidebar.dfaaf9d1.js +3 -0
  49. package/dist/chunks/elevo-sidebar.dfaaf9d1.js.map +1 -0
  50. package/dist/chunks/flow-tabs.ee1290c2.js.map +1 -1
  51. package/dist/chunks/goal-card-list.74ab5767.js.map +1 -1
  52. package/dist/chunks/home-container.f1829834.js.map +1 -1
  53. package/dist/chunks/icon-button.545ffb24.js.map +1 -1
  54. package/dist/chunks/main.5e1b11a5.js +2 -0
  55. package/dist/chunks/main.5e1b11a5.js.map +1 -0
  56. package/dist/chunks/mcp-tools.f132c502.js.map +1 -1
  57. package/dist/chunks/notice-dropdown.63cb2415.js.map +1 -1
  58. package/dist/chunks/page-container.2185f2e0.js.map +1 -1
  59. package/dist/chunks/preview-container.a0ca6e2f.js.map +1 -1
  60. package/dist/chunks/project-knowledges.51731410.js.map +1 -1
  61. package/dist/chunks/running-flow.37a428cf.js.map +1 -1
  62. package/dist/chunks/show-case.44e995fc.js.map +1 -1
  63. package/dist/chunks/show-cases.c3921ea0.js.map +1 -1
  64. package/dist/chunks/space-chat-guide.b9f77cb5.js +3 -0
  65. package/dist/chunks/space-chat-guide.b9f77cb5.js.map +1 -0
  66. package/dist/chunks/space-logo.994f7a25.js.map +1 -1
  67. package/dist/chunks/space-workbench.9d48eec0.js +2 -0
  68. package/dist/chunks/space-workbench.9d48eec0.js.map +1 -0
  69. package/dist/chunks/stage-flow.9b6fad93.js.map +1 -1
  70. package/dist/chunks/stat-with-mini-chart.1509cf8c.js.map +1 -1
  71. package/dist/chunks/sticky-container.d3f7054e.js.map +1 -1
  72. package/dist/chunks/tab-list.ee97567f.js.map +1 -1
  73. package/dist/examples.json +56 -44
  74. package/dist/index.34851313.js +2 -0
  75. package/dist/index.34851313.js.map +1 -0
  76. package/dist/manifest.json +624 -343
  77. package/dist/types.json +1309 -1309
  78. package/dist-types/action-buttons/i18n.d.ts +1 -1
  79. package/dist-types/action-buttons/index.d.ts +10 -1
  80. package/dist-types/activity-timeline/i18n.d.ts +1 -1
  81. package/dist-types/activity-timeline/index.d.ts +10 -1
  82. package/dist-types/ai-agents/i18n.d.ts +1 -1
  83. package/dist-types/ai-agents/index.d.ts +10 -1
  84. package/dist-types/ai-employees/i18n.d.ts +1 -1
  85. package/dist-types/ai-employees/index.d.ts +16 -1
  86. package/dist-types/blank-state/index.d.ts +10 -1
  87. package/dist-types/chat-box/i18n.d.ts +1 -1
  88. package/dist-types/chat-input/i18n.d.ts +1 -1
  89. package/dist-types/chat-input/index.d.ts +37 -1
  90. package/dist-types/chat-panel/ChatPanelContent.d.ts +2 -2
  91. package/dist-types/chat-panel/index.d.ts +48 -6
  92. package/dist-types/chat-stream/Aside/FlowApp/i18n.d.ts +1 -1
  93. package/dist-types/chat-stream/i18n.d.ts +1 -1
  94. package/dist-types/chat-stream/index.d.ts +62 -1
  95. package/dist-types/cruise-canvas/NodeReplay/i18n.d.ts +1 -1
  96. package/dist-types/cruise-canvas/ToolCallDetail/i18n.d.ts +1 -1
  97. package/dist-types/cruise-canvas/i18n.d.ts +1 -1
  98. package/dist-types/cruise-canvas/index.d.ts +71 -1
  99. package/dist-types/dropdown-select/i18n.d.ts +1 -1
  100. package/dist-types/dropdown-select/index.d.ts +3 -1
  101. package/dist-types/elevo-card/index.d.ts +5 -1
  102. package/dist-types/elevo-logo/index.d.ts +3 -1
  103. package/dist-types/elevo-sidebar/i18n.d.ts +1 -1
  104. package/dist-types/elevo-sidebar/index.d.ts +19 -2
  105. package/dist-types/flow-tabs/index.d.ts +5 -1
  106. package/dist-types/gantt-chart/i18n.d.ts +1 -1
  107. package/dist-types/gantt-chart/index.d.ts +3 -1
  108. package/dist-types/goal-card-list/i18n.d.ts +1 -1
  109. package/dist-types/goal-card-list/index.d.ts +8 -1
  110. package/dist-types/home-container/index.d.ts +4 -1
  111. package/dist-types/icon-button/index.d.ts +4 -1
  112. package/dist-types/mcp-tools/i18n.d.ts +1 -1
  113. package/dist-types/mcp-tools/index.d.ts +3 -1
  114. package/dist-types/notice-dropdown/i18n.d.ts +1 -1
  115. package/dist-types/notice-list/i18n.d.ts +1 -1
  116. package/dist-types/page-container/index.d.ts +7 -0
  117. package/dist-types/preview-container/i18n.d.ts +1 -1
  118. package/dist-types/preview-container/index.d.ts +4 -0
  119. package/dist-types/project-conversations/i18n.d.ts +1 -1
  120. package/dist-types/project-knowledges/i18n.d.ts +1 -1
  121. package/dist-types/project-knowledges/index.d.ts +5 -0
  122. package/dist-types/running-flow/index.d.ts +3 -0
  123. package/dist-types/shared/ActivityPlan/i18n.d.ts +1 -1
  124. package/dist-types/shared/AskUser/i18n.d.ts +1 -1
  125. package/dist-types/shared/ChatBox/i18n.d.ts +1 -1
  126. package/dist-types/shared/CreatedView/i18n.d.ts +1 -1
  127. package/dist-types/shared/FilePreview/i18n.d.ts +1 -1
  128. package/dist-types/shared/FileUpload/i18n.d.ts +1 -1
  129. package/dist-types/shared/NodeFeedback/i18n.d.ts +1 -1
  130. package/dist-types/show-case/i18n.d.ts +1 -1
  131. package/dist-types/show-case/index.d.ts +5 -0
  132. package/dist-types/show-cases/i18n.d.ts +1 -1
  133. package/dist-types/show-cases/index.d.ts +4 -0
  134. package/dist-types/space-workbench/chat-panel-welcome/i18n.d.ts +1 -1
  135. package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
  136. package/dist-types/space-workbench/i18n.d.ts +1 -1
  137. package/dist-types/space-workbench/index.d.ts +7 -0
  138. package/dist-types/space-workbench/space-chat-guide/i18n.d.ts +1 -1
  139. package/dist-types/space-workbench/space-chat-guide/index.d.ts +3 -0
  140. package/dist-types/space-workbench/space-logo/index.d.ts +1 -0
  141. package/dist-types/stage-flow/i18n.d.ts +1 -1
  142. package/dist-types/stage-flow/index.d.ts +21 -0
  143. package/dist-types/stat-with-mini-chart/index.d.ts +10 -0
  144. package/dist-types/sticky-container/index.d.ts +3 -0
  145. package/dist-types/tab-list/index.d.ts +4 -0
  146. package/docs/action-buttons.md +59 -10
  147. package/docs/action-buttons.react.md +80 -0
  148. package/docs/activity-timeline.md +51 -7
  149. package/docs/activity-timeline.react.md +109 -0
  150. package/docs/ai-agents.md +62 -2
  151. package/docs/ai-agents.react.md +73 -0
  152. package/docs/ai-employees.md +76 -2
  153. package/docs/ai-employees.react.md +106 -0
  154. package/docs/blank-state.md +62 -2
  155. package/docs/blank-state.react.md +77 -0
  156. package/docs/chat-box.md +134 -52
  157. package/docs/chat-box.react.md +142 -0
  158. package/docs/chat-input.md +117 -1
  159. package/docs/chat-input.react.md +117 -0
  160. package/docs/chat-panel-welcome.md +39 -0
  161. package/docs/chat-panel-welcome.react.md +41 -0
  162. package/docs/chat-panel.md +86 -3
  163. package/docs/chat-panel.react.md +109 -0
  164. package/docs/chat-stream.md +149 -2
  165. package/docs/chat-stream.react.md +155 -0
  166. package/docs/cruise-canvas.md +159 -0
  167. package/docs/cruise-canvas.react.md +159 -0
  168. package/docs/dropdown-select.md +37 -8
  169. package/docs/dropdown-select.react.md +144 -0
  170. package/docs/elevo-card.md +75 -1
  171. package/docs/elevo-card.react.md +104 -0
  172. package/docs/elevo-logo.md +13 -1
  173. package/docs/elevo-logo.react.md +27 -0
  174. package/docs/elevo-sidebar.md +150 -1
  175. package/docs/elevo-sidebar.react.md +149 -0
  176. package/docs/flow-tabs.md +97 -2
  177. package/docs/flow-tabs.react.md +102 -0
  178. package/docs/gantt-chart.md +101 -0
  179. package/docs/gantt-chart.react.md +125 -0
  180. package/docs/goal-card-list.md +149 -13
  181. package/docs/goal-card-list.react.md +185 -0
  182. package/docs/home-container.md +48 -2
  183. package/docs/home-container.react.md +51 -0
  184. package/docs/icon-button.md +128 -2
  185. package/docs/icon-button.react.md +120 -0
  186. package/docs/mcp-tools.md +105 -2
  187. package/docs/mcp-tools.react.md +117 -0
  188. package/docs/notice-dropdown.md +53 -10
  189. package/docs/notice-dropdown.react.md +167 -0
  190. package/docs/notice-list.md +53 -5
  191. package/docs/notice-list.react.md +121 -0
  192. package/docs/page-container.md +80 -3
  193. package/docs/page-container.react.md +83 -0
  194. package/docs/preview-container.md +22 -32
  195. package/docs/preview-container.react.md +71 -0
  196. package/docs/project-conversations.md +85 -4
  197. package/docs/project-conversations.react.md +110 -0
  198. package/docs/project-knowledges.md +73 -8
  199. package/docs/project-knowledges.react.md +85 -0
  200. package/docs/running-flow.md +57 -2
  201. package/docs/running-flow.react.md +90 -0
  202. package/docs/show-case.md +48 -3
  203. package/docs/show-case.react.md +60 -0
  204. package/docs/show-cases.md +52 -2
  205. package/docs/show-cases.react.md +92 -0
  206. package/docs/space-chat-guide.md +32 -0
  207. package/docs/space-chat-guide.react.md +39 -0
  208. package/docs/space-logo.md +53 -0
  209. package/docs/space-logo.react.md +46 -0
  210. package/docs/space-workbench.md +45 -2
  211. package/docs/space-workbench.react.md +102 -0
  212. package/docs/stage-flow.md +122 -26
  213. package/docs/stage-flow.react.md +112 -0
  214. package/docs/stat-with-mini-chart.md +64 -159
  215. package/docs/stat-with-mini-chart.react.md +113 -0
  216. package/docs/sticky-container.md +56 -3
  217. package/docs/sticky-container.react.md +60 -0
  218. package/docs/tab-list.md +74 -3
  219. package/docs/tab-list.react.md +73 -0
  220. package/package.json +2 -2
  221. package/dist/chunks/1097.9e80dcca.js +0 -3
  222. package/dist/chunks/1097.9e80dcca.js.map +0 -1
  223. package/dist/chunks/2341.0e70532b.js +0 -2
  224. package/dist/chunks/2341.0e70532b.js.map +0 -1
  225. package/dist/chunks/3171.45ef4669.js +0 -2
  226. package/dist/chunks/3171.45ef4669.js.map +0 -1
  227. package/dist/chunks/3573.7b0bb780.js +0 -3
  228. package/dist/chunks/3573.7b0bb780.js.map +0 -1
  229. package/dist/chunks/4459.dbfa8706.js +0 -3
  230. package/dist/chunks/4459.dbfa8706.js.map +0 -1
  231. package/dist/chunks/4837.570099ad.js +0 -2
  232. package/dist/chunks/4837.570099ad.js.map +0 -1
  233. package/dist/chunks/5399.501fc322.js +0 -2
  234. package/dist/chunks/5399.501fc322.js.map +0 -1
  235. package/dist/chunks/5552.09658542.js +0 -2
  236. package/dist/chunks/5552.09658542.js.map +0 -1
  237. package/dist/chunks/6380.b8610c4b.js +0 -3
  238. package/dist/chunks/6380.b8610c4b.js.map +0 -1
  239. package/dist/chunks/7202.a893b0e6.js +0 -3
  240. package/dist/chunks/7202.a893b0e6.js.map +0 -1
  241. package/dist/chunks/948.e601f18c.js +0 -3
  242. package/dist/chunks/948.e601f18c.js.map +0 -1
  243. package/dist/chunks/9599.02a5e6e3.js +0 -2
  244. package/dist/chunks/9599.02a5e6e3.js.map +0 -1
  245. package/dist/chunks/9848.4b1f38c9.js +0 -3
  246. package/dist/chunks/9848.4b1f38c9.js.LICENSE.txt +0 -1
  247. package/dist/chunks/9848.4b1f38c9.js.map +0 -1
  248. package/dist/chunks/chat-box.1ac7555a.js +0 -3
  249. package/dist/chunks/chat-box.1ac7555a.js.map +0 -1
  250. package/dist/chunks/chat-input.444c80bb.js +0 -3
  251. package/dist/chunks/chat-input.444c80bb.js.map +0 -1
  252. package/dist/chunks/chat-panel.3160f2e8.js.map +0 -1
  253. package/dist/chunks/elevo-sidebar.a197a77f.js +0 -3
  254. package/dist/chunks/elevo-sidebar.a197a77f.js.map +0 -1
  255. package/dist/chunks/main.9d171af9.js +0 -2
  256. package/dist/chunks/main.9d171af9.js.map +0 -1
  257. package/dist/chunks/space-chat-guide.84f4a1e7.js +0 -3
  258. package/dist/chunks/space-chat-guide.84f4a1e7.js.map +0 -1
  259. package/dist/chunks/space-workbench.8c064898.js +0 -2
  260. package/dist/chunks/space-workbench.8c064898.js.map +0 -1
  261. package/dist/index.0edd6320.js +0 -2
  262. package/dist/index.0edd6320.js.map +0 -1
  263. /package/dist/chunks/{3573.7b0bb780.js.LICENSE.txt → 3840.6080d56e.js.LICENSE.txt} +0 -0
  264. /package/dist/chunks/{4459.dbfa8706.js.LICENSE.txt → 551.ae5171a6.js.LICENSE.txt} +0 -0
  265. /package/dist/chunks/{7202.a893b0e6.js.LICENSE.txt → 7669.6f177bf2.js.LICENSE.txt} +0 -0
  266. /package/dist/chunks/{6380.b8610c4b.js.LICENSE.txt → 794.214aa08f.js.LICENSE.txt} +0 -0
  267. /package/dist/chunks/{948.e601f18c.js.LICENSE.txt → 948.c96c7036.js.LICENSE.txt} +0 -0
  268. /package/dist/chunks/{chat-box.1ac7555a.js.LICENSE.txt → chat-box.060b8727.js.LICENSE.txt} +0 -0
  269. /package/dist/chunks/{chat-input.444c80bb.js.LICENSE.txt → chat-input.e913e9ed.js.LICENSE.txt} +0 -0
  270. /package/dist/chunks/{elevo-sidebar.a197a77f.js.LICENSE.txt → elevo-sidebar.dfaaf9d1.js.LICENSE.txt} +0 -0
  271. /package/dist/chunks/{space-chat-guide.84f4a1e7.js.LICENSE.txt → space-chat-guide.b9f77cb5.js.LICENSE.txt} +0 -0
@@ -0,0 +1,73 @@
1
+ ---
2
+ tagName: ai-portal.tab-list
3
+ displayName: WrappedAiPortalTabList
4
+ description: 标签页列表构件,展示可切换的标签页,点击后触发事件并自动更新选中状态。
5
+ category: ""
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalTabList
10
+
11
+ > 标签页列表构件,展示可切换的标签页,点击后触发事件并自动更新选中状态。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalTabList } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | --------- | -------- | ---- | ------ | ------------------------------------ |
23
+ | tabs | `Tab[]` | 否 | - | 标签页配置列表,每项包含 id 和 label |
24
+ | activeTab | `string` | 否 | - | 当前激活的标签页 id |
25
+
26
+ ## Events
27
+
28
+ | 事件 | detail | 说明 |
29
+ | ---------- | ------------------------------------------- | ---------------------------------------- |
30
+ | onTabClick | `Tab` — { id: 标签页ID, label: 标签页标题 } | 点击标签页时触发,同时自动更新 activeTab |
31
+
32
+ ## CSS Parts
33
+
34
+ | 名称 | 说明 |
35
+ | ---- | ---------------------- |
36
+ | tabs | The tab list container |
37
+ | tab | The individual tab |
38
+
39
+ ## Examples
40
+
41
+ ### 基础使用
42
+
43
+ 展示可切换的标签页列表,点击后自动切换选中状态。
44
+
45
+ ```tsx
46
+ <WrappedAiPortalTabList
47
+ tabs={[
48
+ { id: "all", label: "全部" },
49
+ { id: "host", label: "主机故障排查" },
50
+ { id: "inspect", label: "主机巡检" },
51
+ ]}
52
+ activeTab="all"
53
+ onTabClick={(e) => console.log("标签点击:", e.detail)}
54
+ />
55
+ ```
56
+
57
+ ### 与内容联动
58
+
59
+ 结合 useState,点击标签页时切换显示对应内容。
60
+
61
+ ```tsx
62
+ const [activeTab, setActiveTab] = useState("tab1");
63
+
64
+ <WrappedAiPortalTabList
65
+ tabs={[
66
+ { id: "tab1", label: "Tab 1" },
67
+ { id: "tab2", label: "Tab 2" },
68
+ ]}
69
+ activeTab={activeTab}
70
+ onTabClick={(e) => setActiveTab(e.detail.id)}
71
+ />
72
+ <div style={{ padding: "16px" }}>当前 Tab: {activeTab === "tab1" ? "Tab 1" : "Tab 2"}</div>
73
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/ai-portal",
3
- "version": "0.70.1",
3
+ "version": "0.70.3",
4
4
  "homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/ai-portal",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,5 +49,5 @@
49
49
  "@next-bricks/presentational": "*",
50
50
  "@next-bricks/vs": "*"
51
51
  },
52
- "gitHead": "05072fd5cc9a9758927c7729df7bf49f853e079c"
52
+ "gitHead": "bfc02e6cd7028ac3f92808235d9f3fcc0dfde393"
53
53
  }
@@ -1,3 +0,0 @@
1
- /*! For license information please see 1097.9e80dcca.js.LICENSE.txt */
2
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[1097],{11097:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>l,auth:()=>vt,checkInstalledApps:()=>r,checkPermissions:()=>mt,flowApi:()=>i,menu:()=>s,messageDispatcher:()=>gt});var o={};n.r(o),n.d(o,{addPathToBlackList:()=>b,authenticate:()=>A,getAuth:()=>w,isBlockedHref:()=>P,isBlockedPath:()=>I,isBlockedUrl:()=>k,isLoggedIn:()=>S,logout:()=>y});var r={};n.r(r),n.d(r,{getCheckedApp:()=>ae,preCheckInstalledApps:()=>ie,waitForCheckingApps:()=>se});var i={};n.r(i),n.d(i,{FLOW_API_PROVIDER:()=>le,clearCollectWidgetContract:()=>Se,clearDebugContract:()=>Ie,collectContract:()=>we,collectDebugContract:()=>be,collectWidgetContract:()=>ye,getArgsOfFlowApi:()=>Ee,isFlowApiProvider:()=>Pe,registerFlowApiProvider:()=>de});var s={};n.r(s),n.d(s,{fetchMenuById:()=>Ke,getMenuById:()=>Ye});var a={};n.r(a),n.d(a,{onRequest:()=>ut,onResponse:()=>pt,onResponseError:()=>dt});var c={};n.r(c),n.d(c,{create:()=>ft});var l={};n.r(l),n.d(l,{http:()=>a,initialize:()=>ct,pageView:()=>c});var u=n(95188),p=n(86330),d=n(22919),h=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),f=n(60128),m=n(11732);const g={};let v=new Set;function A(e){var t;Object.assign(g,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,accessToken:e.accessToken,userShowValue:e.userShowValue}),v=new Set(null===(t=e.license)||void 0===t?void 0:t.blackList)}function w(){return{...g}}function y(){for(const e of Object.keys(g))g[e]=void 0;E.clear(),O.length=0,C.clear()}function S(){return void 0!==g.username}function b(e){v.add(e)}function I(e){return[...v].some((t=>(0,f.matchPath)(e,{path:t})))}function k(e){const t=("string"==typeof e?(0,m.createLocation)(e):e).pathname;return"string"==typeof t&&I(t)}function P(e){const t=(0,f.getBasePath)(),n=new URL(e,`${location.origin}${t}`);return!(n.origin!==location.origin||!n.pathname.startsWith(t))&&I(n.pathname.substring(t.length-1))}const E=new Map,O=[],C=new Map;function M(e){if(S()&&!w().isAdmin)return _((0,u.scanPermissionActionsInAny)(e))}async function _(e){const t=e.filter((e=>!O.includes(e)));if(0===t.length)return;const n=[],o=[];for(const e of t){const t=E.get(e);t?n.push(t):o.push(e)}if(o.length>0){const e=(async()=>{try{const e=await h({actions:o},{noAbortOnRouteChange:!0});for(const t of e.actions)C.set(t.action,t.authorizationStatus),"undefined"===t.authorizationStatus&&console.error(`Undefined permission action: "${t.action}"`)}catch(e){console.error("Pre-check permissions failed",e)}finally{O.push(...o)}})();for(const t of o)E.set(t,e);n.push(e)}await Promise.all(n)}var T=n(74635),N=n(70918),$=n(5536),R=n(12559),L=n(86121),B=n(70829),j=n(41030),W=new WeakMap,D=new WeakMap,x=new WeakMap,U=new WeakMap,F=new WeakMap,q=new WeakMap,z=new WeakMap,H=new WeakSet;class G{constructor(e){(0,T.A)(this,H),(0,N.A)(this,W,void 0),(0,N.A)(this,D,void 0),(0,N.A)(this,x,[]),(0,N.A)(this,U,new Set),(0,N.A)(this,F,new Set),(0,N.A)(this,q,0),(0,N.A)(this,z,!1),(0,L.A)(W,this,e)}send(e){(0,B.A)(D,this)||(0,L.A)(D,this,(0,R.A)(H,this,J).call(this));const t=JSON.stringify(e);(0,B.A)(D,this).readyState===WebSocket.OPEN?(0,B.A)(D,this).send(t):(0,B.A)(x,this).push(t)}onMessage(e){return(0,B.A)(U,this).add(e),()=>{(0,B.A)(U,this).delete(e)}}onClose(e){return(0,B.A)(F,this).add(e),()=>{(0,B.A)(F,this).delete(e)}}reset(){(0,B.A)(x,this).length=0,(0,B.A)(U,this).clear(),(0,B.A)(F,this).clear()}close(){var e;(0,L.A)(z,this,!0),(null===(e=(0,B.A)(D,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,B.A)(D,this).close()}}function J(){console.log("WebSocket connecting ...");const e=new WebSocket((0,B.A)(W,this));let t;return e.addEventListener("open",(n=>{console.log("WebSocket open:",n),t=setTimeout((()=>{t=void 0,(0,L.A)(q,this,0)}),1e3);for(const t of(0,B.A)(x,this))e.send(t);(0,B.A)(x,this).length=0})),e.addEventListener("close",(e=>{(0,B.A)(z,this)||(void 0!==t&&clearTimeout(t),console.log("WebSocket close:",e),1e3!==e.code&&(0,R.A)(H,this,V).call(this))})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{const t=JSON.parse(e.data);for(const e of(0,B.A)(U,this))e(t)})),e}function V(){if((0,B.A)(q,this)>=5){console.error("WebSocket connect retry limit exceeded");for(const e of(0,B.A)(F,this))e();return}const e=1e3*Math.pow(2,(0,B.A)(q,this));console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,L.A)(q,this,(e=(0,B.A)(q,this),++e)),(0,L.A)(D,this,(0,R.A)(H,this,J).call(this))}),e)}var Y=new WeakMap,K=new WeakMap,Q=new WeakMap,X=new WeakSet;function Z(e){if(!(0,B.A)(Y,e)){const t=`${"https:"===location.protocol?"wss:":"ws:"}//${window.location.host}${(0,f.getBasePath)()}api/websocket_service/v1/ws`;(0,L.A)(Y,e,new G(t))}return(0,B.A)(Y,e)}function ee(e,t,n,o){const r=(0,B.A)(K,this)[e].get(o);if(r)return r;const i={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},s=new Promise(((t,o)=>{const r=te(n),s=(0,$.A)(X,this,Z).onMessage((n=>{const i=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),c=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(i||c)&&r===te(n.payload)&&((i?t:o)(n),s(),a())})),a=(0,$.A)(X,this,Z).onClose((()=>{o({retryCount:5}),s(),a()}));(0,$.A)(X,this,Z).send(i)}));return"sub"===e&&(0,B.A)(Q,this).set(t,o),(0,B.A)(K,this)[e].set(o,s),s}function te(e){const{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var ne=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}();const oe=new Map,re=new Map;function ie(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){const n=function(e){var t;const n={usedArgs:new Set},{customTemplates:o,menus:r}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,u.traverseStoryboardExpressions)([e.routes,o,r],((e,t)=>{(0,u.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),o=[];for(const e of n)oe.has(e)||t(e)||o.push(e);if(0===o.length)return;const r=ne({query:{appId:{$in:o}},fields:["appId","currentVersion","installStatus"]},{noAbortOnRouteChange:!0}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)}));for(const e of o)oe.set(e,r.then((t=>{var n;const o=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),r=o?{...o,id:e}:void 0;return re.set(e,r),r})))}}async function se(e){await Promise.all(e.map((e=>oe.get(e))))}function ae(e){if(window.STANDALONE_MICRO_APPS)return re.get(e)}var ce=n(40410);const le="core.provider-flow-api";function ue(e,t){return null==e?void 0:e.some((e=>e.source===t))}async function pe(e){let{url:t,originalUri:n,method:o="GET",responseWrapper:r=!0,ext_fields:i,request:s,isFileType:a,stream:c}=e;const l=["get","delete","head"].includes(o.toLowerCase()),u=a?{responseType:"blob"}:{};let p;for(var h=arguments.length,f=new Array(h>1?h-1:0),m=1;m<h;m++)f[m-1]=arguments[m];if(l){var g,v,A,w;let e,r;var y,S;if(n&&"object"===(null==s?void 0:s.type)&&(null!==(g=null===(v=n.match(/:([^/]+)/g))||void 0===v?void 0:v.length)&&void 0!==g?g:0)===(null!==(A=null===(w=s.fields)||void 0===w?void 0:w.length)&&void 0!==A?A:0)?[r]=f:[e,r]=f,c)return await(0,ce.createSSEStream)(d.http.getUrlWithParams(t,e),{...u,...r,method:o,headers:Object.fromEntries([...new Headers(null!==(y=null===(S=r)||void 0===S?void 0:S.headers)&&void 0!==y?y:{}).entries()])});p=await d.http.simpleRequest(o,t,{params:e,...u,...r})}else{const e=function(e){if("object"!==(null==e?void 0:e.type))return!1;const t=e=>!(0,j.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),n=function(e){const t=ue(e,"query");for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];if(t){if(ue(e,"body")){const[e,t,n]=o;return{data:e,options:{params:t,...n}}}const[t,n]=o;return{data:{},options:{params:t,...n}}}const[i,s]=o;return{data:i,options:s}}(i,...f),r=e?function(e){if(e instanceof FormData)return e;const t=new FormData;for(const[n,o]of Object.entries(e))Array.isArray(o)?o.forEach((e=>{t.append(n,e)})):!(0,j.isObject)(o)||o instanceof Blob||o instanceof Date?t.append(n,o):Object.entries(o).forEach((e=>{let[o,r]=e;t.append(`${n}[${o}]`,r)}));return t}(n.data):n.data;if(c){var b;const{body:e,headers:i}=d.http.getBodyAndHeaders(r,null===(b=n.options)||void 0===b?void 0:b.headers);return await(0,ce.createSSEStream)(t,{...u,...n.options,method:o,headers:Object.fromEntries([...new Headers(null!=i?i:{}).entries()]),body:e})}p=await d.http.requestWithBody(o,t,r,{...u,...n.options})}return!a&&r?p.data:p}function de(){customElements.define(le,(0,ce.createProviderClass)(pe))}var he=n(55310);const fe=async(e,t)=>(await d.http.post("api/gateway/next_builder.contract_center.BatchSearchContract/api/v1/contract/batch_search",e,t)).data,me=new Map,ge=new Map,ve=new Map,Ae=(e,t)=>{null==e||e.forEach((e=>{t.set(`${e.namespaceId}.${e.name}`,e)}))};function we(e){Ae(e,me)}function ye(e){Ae(e,ge)}function Se(){ge.clear()}function be(e){Ae(e,ve)}function Ie(){ve.clear()}const ke=new Map;function Pe(e){return e.includes("@")}async function Ee(e,t,n,o){if(!e.includes(":"))throw new Error(`You're using legacy Custom API "${e}" which is dropped in v3, please use Flow API instead`);const r=await async function(e){const[t,n]=e.split("@"),[o,r]=n.split(":"),i=function(e){return me.get(e)||ge.get(e)||ve.get(e)}(`${t}.${o}`);if(i)return{name:i.name,namespace:i.namespaceId,serviceName:i.serviceName,version:i.version,contract:{endpoint:i.endpoint,response:i.response,request:i.request}};let s=ke.get(e);return s||(s=async function(e,t,n){let o;const r=`${e}@${t}`;let i;try{const{list:e}=await fe({contract:[{fullContractName:r,version:n}]});o=e[0]}catch(e){i=e}return o?{name:o.name,namespace:o.namespaceId,serviceName:o.serviceName,version:o.version,contract:{endpoint:o.endpoint,response:o.response,request:o.request}}:(console.error(`Failed to fetch Flow API definition for "${r}:${n}"`,null!=i?i:"Contract not found"),null)}(t,o,r),ke.set(e,s)),s}(e);if(!r)throw new Oe(`Flow API not found: "${e}"`);const i=function(e,t){var n,o;const r="string"==typeof t.contract?he.safeLoad(t.contract,{schema:he.JSON_SCHEMA,json:!0}):t.contract,{uri:i,method:s="GET",ext_fields:a}=null!==(n=null==r?void 0:r.endpoint)&&void 0!==n?n:{},c=!(null==r||!r.response)&&!1!==r.response.wrapper;if(!i)throw new Error(`Missing endpoint.uri in contract of provider "${e}"`);return{uri:i,method:"list"===s.toLowerCase()?"get":s,ext_fields:a,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==r||null===(o=r.response)||void 0===o?void 0:o.type),responseWrapper:c,request:null==r?void 0:r.request}}(e,r);return function(e,t,n,o){const{uri:r,method:i,ext_fields:s,responseWrapper:a,isFileType:c,request:l}=e,u="saveAs"===n;let p,d=t;u&&(Array.isArray(t)?(d=t.slice(),p=d.shift()):p=t.filename);const{url:h,args:f}=function(e,t){const{uri:n,name:o,namespace:r,serviceName:i,version:s,method:a="GET",request:c,ext_fields:l}=e,u=s?"logic.api.gateway"===i||null!=i&&i.startsWith("logic.api.gateway.")?"":i?`api/gateway/${i}`:`api/gateway/${r}.${o}@${s}`:`api/gateway/api_service.${r}.${o}`;let p,d=[];if(Array.isArray(t))d=t.slice(),p=n.replace(/:([^/]+)/g,(()=>d.shift()));else{const e={...t.params};if(p=n.replace(/:([^/]+)/g,((t,n)=>{if((0,ce.hasOwnProperty)(e,n)){const t=e[n];return delete e[n],t}throw new Error(`Missing required param: "${n}"`)})),["get","delete","head"].includes(a.toLowerCase())){var h,f,m,g;"object"===(null==c?void 0:c.type)&&(null!==(h=null===(f=n.match(/:([^/]+)/g))||void 0===f?void 0:f.length)&&void 0!==h?h:0)===(null!==(m=null===(g=c.fields)||void 0===g?void 0:g.length)&&void 0!==m?m:0)||d.push(e)}else{const t=null==l?void 0:l.find((e=>"body"===e.source));if(t){let n;t.name&&(0,ce.hasOwnProperty)(e,t.name)&&(n=e[t.name],delete e[t.name]),d.push(n)}const n=null==l?void 0:l.find((e=>"query"===e.source));if(n){let t;n.name&&(0,ce.hasOwnProperty)(e,n.name)&&(t=e[n.name],delete e[n.name]),d.push(t)}t||n||d.push(e)}t.options&&d.push(t.options)}return{url:u?u+p:p.replace(/^\//,""),args:d}}(e,d);return[...u?[p]:[],{url:h,originalUri:r,method:i,ext_fields:s,responseWrapper:a,request:l,isFileType:c,stream:o},...f]}(i,t,n,o)}class Oe extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,Oe)}}var Ce=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,o){return e.apply(this,arguments)}}(),Me=n(69740),_e=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,Me.A)((0,Me.A)({},n),{},{params:t}))).data}));return function(t,n,o){return e.apply(this,arguments)}}(),Te=n(67177);const Ne=Symbol("appId"),$e=Symbol("menuI18nNamespace"),Re=Symbol("overrideApp");async function Le(e,t,n){const o=e.find((e=>"inject"!==e.type));if(!o)return;const r=[],i=new Map,s=new WeakMap;for(const t of e)if(t.i18n){const e=`menu/${t.menuId}~${t.app[0].appId}+${t.instanceId}`;Object.entries(t.i18n).forEach((t=>{let[n,o]=t;Te.i18n.addResourceBundle(n,e,o)})),s.set(t,e)}await Promise.all(e.map((e=>async function(e,t,n,o){if(e.dynamicItems&&e.itemsResolve){const i=e.app[0].appId,s={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,M(e.itemsResolve)]};var r;i!==t.app.id&&(s.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(r=o.getStoryboardByAppId(i))||void 0===r?void 0:r.app,s.appendI18nNamespace=n.get(e));const a=await o.resolveData({transform:"items",...e.itemsResolve},s);e.items=a.items}}(e,t,s,n))));for(const t of e){var a;if(null!==(a=t.items)&&void 0!==a&&a.length)if("inject"===t.type&&t.injectMenuGroupId){let e=i.get(t.injectMenuGroupId);e||(e=[],i.set(t.injectMenuGroupId,e)),e.push(t)}else r.push(t)}return{...o,items:r.flatMap((e=>Be(e.items,e,i,s))),[$e]:s.get(o),[Re]:o.overrideApp}}function Be(e,t,n,o){return null==e?void 0:e.map((e=>{var r;const i=e.groupId&&n.get(e.groupId);return i&&n.delete(e.groupId),{...e,children:(null!==(r=Be(e.children,t,n,o))&&void 0!==r?r:[]).concat(i?i.flatMap((e=>Be(e.items,e,n,o))):[]),[Ne]:t.app[0].appId,[$e]:o.get(t),[Re]:t.overrideApp}}))}function je(e){e.items=We(e.items)}function We(e){return function(e){return(0,j.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>({...e,children:We(e.children)})))}var De=n(59933),xe=n(71321);function Ue(e,t,n,o){if("titleDataSource"in e&&(0,ce.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{let[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,xe.isEvaluable)(e.to)){const t=De.pipes.yaml(e.to);(0,ce.isObject)(t)&&["pathname","search","hash"].some((e=>(0,ce.hasOwnProperty)(t,e)))&&(e.to=t)}let r=n;if(t!==n.app.id){var i;const s=window.STANDALONE_MICRO_APPS?e[Re]:null===(i=o.getStoryboardByAppId(t))||void 0===i?void 0:i.app;r={...n,overrideApp:s,appendI18nNamespace:e[$e]}}return o.asyncComputeRealValue(e,r,{ignoreSymbols:!0})}function Fe(e,t,n){return Promise.all(e.map((async e=>{let{children:o,...r}=e;const[i,s]=await Promise.all([Ue(r,r[Ne],t,n),o&&await Fe(o,t,n)]);return{...i,children:s}})))}var qe=n(48518);const ze=new Map;async function He(e){if(e.title||(0,j.isEmpty)(e.titleDataSource))return e.title;const t=JSON.stringify(e.titleDataSource),n=ze.get(t);if(void 0!==n)return n;const{objectId:o,instanceId:r,attributeId:i}=e.titleDataSource,s=null!=i?i:"name",a=await(0,qe.y)(o,r,{fields:s});let c;if("#showKey"===i&&Array.isArray(a[s])){const[e,...t]=a[s];c=t.length>0?`${e}(${t.join(",")})`:String(e)}else c=String(a[s]);return ze.set(t,c),c}const Ge=new Map,Je=new Map;function Ve(e){return null==e?void 0:e.filter(f.checkIfOfComputed).map((e=>{const t=Ve(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:function(e){return e.href?P(e.href):!!e.to&&k(e.to)}(e)?null:(0,j.omit)(e,["type","items","children"])})).filter(Boolean)}function Ye(e){return Je.get(e)}function Ke(e,t,n){let o=Ge.get(e);return o||(o=async function(e,t,n){const o=window.STANDALONE_MICRO_APPS?function(e,t,n){var o,r,i,s;const a=n.getStoryboardByAppId(t);return(null!==(o=null!==(r=null===(i=a.meta)||void 0===i?void 0:i.injectMenus)&&void 0!==r?r:null===(s=a.meta)||void 0===s?void 0:s.menus)&&void 0!==o?o:[]).filter((t=>t.menuId===e)).map((e=>{var n;return{...e,...null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]}}}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(await _e(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(await Ce("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,r=await Le(o,t,n);if(!r)throw new Error(`Menu not found: ${e}`);je(r);const{items:i,app:s,...a}=r,c={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,M([i,a])]};delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex,delete c.forEachSize;const l=s[0].appId,[u,p]=await Promise.all([Ue(a,l,c,n),Fe(i,c,n)]),d={title:await He(u),...(0,j.pick)(u,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"]),menuItems:Ve(p)};Je.set(e,d)}(e,t,n)),o}const Qe=[];let Xe=null;const Ze={maxWaitingTime:5e3,maxLoggedEvents:10};function et(){clearTimeout(Xe),Qe.length>Ze.maxLoggedEvents?tt():Xe=setTimeout(tt,Ze.maxWaitingTime)}function tt(){if(0===Qe.length)return;const e={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:Qe.splice(0,Ze.maxLoggedEvents)};var t;!function(e,t){const n=new Blob([JSON.stringify(t)],{type:"application/json"});window.navigator.sendBeacon(e,n)}(Ze.api,e),Qe.length&&(t=tt,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(t))}function nt(){window.addEventListener("beforeunload",tt,!1)}let ot,rt=!1,it=null,st=!0;const at=[];function ct(e){rt||(rt=!0,ot||(ot=function(e,t){return Object.assign(Ze,{...t,api:e}),{sendOnExit:nt,emit:et}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),ot.sendOnExit()))}const lt=Symbol("HttpAnalytics");function ut(e){const t=Math.round(performance.now()),n=Date.now();return e[lt]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function pt(e,t){return ht(!1,e,t)}function dt(e,t){return ht(!0,e,t)}function ht(e,t,n){const o=Math.round(performance.now()),r=Date.now(),{[lt]:i,url:s}=n;if(i&&!(e&&t instanceof d.HttpAbortError)){delete n[lt];const{st:c,time:l,perfStartTime:u}=i,{userInstanceId:p,username:h}=w();let f,m,g,v,A,y,S;if(e){const e=t instanceof d.HttpResponseError;(e||t instanceof d.HttpParseError)&&(({status:A,headers:y}=t.response),e&&(S=t.responseJson))}else({status:A,data:S,headers:y}=t);(0,ce.isObject)(S)&&({code:f,message:m}=S),y instanceof Headers&&(g=y.get("x-b3-traceid"),v=y.get("content-length")),a={st:c,_ver:c,uid:p,username:h,time:l,et:r,page:location.href,duration:o-u,api:s,type:"api",code:null!=f?f:-1,msg:null!=m?m:"",status:A,traceId:null!=g?g:"",size:v?Number(v):-1},it?Qe.push({...a,type:"apiRequest",...it}):at.push(a)}var a;return e?Promise.reject(t):t}function ft(){const e=Math.round(performance.now()),t=Date.now();return at.length=0,it=null,function(n){let{status:o,path:r,pageTitle:i}=n;if("ok"!==o)return Qe.push(...at),void(at.length=0);const s=Math.round(performance.now())-e,a=Date.now(),{username:c}=w();(function(e){const t=function(){const e=URL.createObjectURL(new Blob([]));let t=e.substring(e.lastIndexOf("/")+1);return URL.revokeObjectURL(e),st&&(t="88-"+t,st=!1),t}(),{lt:n,route:o}=e;it={lt:n,route:o,pageId:t},Qe.push({...e,pageId:t,apiCount:at.length,maxApiTimeCost:Math.max(0,...at.map((e=>e.duration))),size:at.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)});for(const e of at)Qe.push({...e,...it});at.length=0,ot.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:a,lt:s,pageTitle:i,username:c,route:r}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:s}}))}}const mt=Object.freeze({checkPermissions:function(){if(!S())return!1;if(w().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(const e of t)switch(C.get(e)){case"unauthorized":case"undefined":return!1;case void 0:return console.error(`Un-checked permission action: "${e}", please make sure the permission to check is defined in permissionsPreCheck.`),!1}return!0},preCheckPermissions:function(e){if(S()&&!w().isAdmin)return _((0,u.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:async function(e,t){if(S()&&!w().isAdmin&&Array.isArray(e.permissionsPreCheck))return _(await t(e.permissionsPreCheck))}}),gt=new class{constructor(){(0,T.A)(this,X),(0,N.A)(this,Y,void 0),(0,N.A)(this,K,{sub:new Map,unsub:new Map}),(0,N.A)(this,Q,new Map)}subscribe(e,t){const n=JSON.stringify(t);return(0,R.A)(X,this,ee).call(this,"sub",e,t,n)}unsubscribe(e){const t=(0,B.A)(Q,this).get(e);if(!t){const t=`The message channel to unsubscribe "${e}" is not found`;return console.error(t),Promise.reject(new Error(t))}const n=JSON.parse(t),o=(0,R.A)(X,this,ee).call(this,"unsub",e,n,t);return(0,B.A)(K,this).sub.delete(t),o.then((()=>{(0,B.A)(Q,this).delete(e)})),o}onMessage(e,t){let n=(0,B.A)(Q,this).get(e),o=!1;return(0,$.A)(X,this,Z).onMessage((r=>{n||(n=(0,B.A)(Q,this).get(e)),n?"MESSAGE.PUSH"===r.event&&function(e,t){const n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp(`^${n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>`${(0,j.escapeRegExp)(t)}[^/]*${(0,j.escapeRegExp)(n)}`))}$`).test(t.topic))}(n,r.payload)&&t(r.payload.message):o||(console.error(`Message channel: "${e}" not found`),o=!0)}))}onClose(e){return(0,$.A)(X,this,Z).onClose(e)}reset(){var e;(0,B.A)(K,this).sub.clear(),(0,B.A)(K,this).unsub.clear(),(0,B.A)(Q,this).clear(),null===(e=(0,B.A)(Y,this))||void 0===e||e.reset()}},vt=function(){const e=(0,f.getV2RuntimeFromDll)();if(e)return Object.freeze((0,j.pick)(e,["authenticate","getAuth","isLoggedIn","logout","addPathToBlackList","isBlockedPath","isBlockedUrl","isBlockedHref"]))}()||o}}]);
3
- //# sourceMappingURL=1097.9e80dcca.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/1097.9e80dcca.js","mappings":"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","sources":["webpack:///../../node_modules/@next-api-sdk/micro-app-sdk/dist/esm/api/micro_app/permission/validatePermissions.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/auth.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/checkPermissions.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/websocket/MessageService.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/websocket/MessageDispatcher.js","webpack:///../../node_modules/@next-api-sdk/micro-app-standalone-sdk/dist/esm/api/micro_app_standalone/runtime/searchMicroAppStandalone.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/checkInstalledApps.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/FlowApiProvider.js","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/contract_center/batchSearchContract.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/CollectContracts.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/FlowApi.js","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearch.js","webpack:///../../node_modules/@next-api-sdk/micro-app-sdk/dist/esm/api/micro_app/installed_micro_app/getMenusInfo.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/constants.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/mergeMenu.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/loadDynamicMenuItems.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/reorderMenuItems.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/computeMenuData.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/fetchMenuTitle.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/fetchMenuById.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/getMenusOfStandaloneApp.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/transport.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/analytics.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/http.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/pageView.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/index.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/auth-v2.js"],"sourcesContent":["import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 校验系统权限\n * @endpoint POST /api/micro_app/v1/permission/validate\n */\nexport var PermissionApi_validatePermissions = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.micro_app.permission.ValidatePermissions@1.0.0 */(yield http.post(\"api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate\", data, options)).data\n );\n });\n return function PermissionApi_validatePermissions(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=validatePermissions.js.map","import { getBasePath, matchPath } from \"@next-core/runtime\";\nimport { createLocation } from \"history\";\nimport { resetPermissionPreChecks } from \"./checkPermissions.js\";\nconst auth = {};\nlet pathBlackListSet = new Set();\n\n/** @internal */\n\n/** @internal */\nexport function authenticate(newAuth) {\n var _newAuth$license;\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n csrfToken: newAuth.csrfToken,\n license: newAuth.license,\n accessToken: newAuth.accessToken,\n userShowValue: newAuth.userShowValue\n });\n pathBlackListSet = new Set((_newAuth$license = newAuth.license) === null || _newAuth$license === void 0 ? void 0 : _newAuth$license.blackList);\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth() {\n return {\n ...auth\n };\n}\n\n/** @internal */\nexport function logout() {\n for (const key of Object.keys(auth)) {\n auth[key] = undefined;\n }\n resetPermissionPreChecks();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn() {\n return auth.username !== undefined;\n}\n\n/**\n * 增加路径黑名单\n */\nexport function addPathToBlackList(path) {\n pathBlackListSet.add(path);\n}\n\n/**\n * 判断一个内部 URL 路径是否被屏蔽。\n */\nexport function isBlockedPath(pathname) {\n return [...pathBlackListSet].some(path => matchPath(pathname, {\n path\n }));\n}\n\n/**\n * 判断一个内部 URL 是否被屏蔽。\n */\nexport function isBlockedUrl(url) {\n const pathname = (typeof url === \"string\" ? createLocation(url) : url).pathname;\n if (typeof pathname !== \"string\") {\n return false;\n }\n return isBlockedPath(pathname);\n}\n\n/**\n * 判断一个 href 是否被屏蔽。\n */\nexport function isBlockedHref(href) {\n const basePath = getBasePath();\n const url = new URL(href, `${location.origin}${basePath}`);\n // 忽略外链地址\n if (url.origin !== location.origin || !url.pathname.startsWith(basePath)) {\n return false;\n }\n // 转换为内部路径\n return isBlockedPath(url.pathname.substring(basePath.length - 1));\n}\n//# sourceMappingURL=auth.js.map","import { scanPermissionActionsInAny, scanPermissionActionsInStoryboard } from \"@next-core/utils/storyboard\";\nimport { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport { getAuth, isLoggedIn } from \"./auth.js\";\nconst checkingPermissions = new Map();\nconst checkedPermissions = [];\nconst permissionMap = new Map();\nexport function preCheckPermissions(storyboard) {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\nexport async function preCheckPermissionsForBrickOrRoute(container, asyncComputeRealValue) {\n if (isLoggedIn() && !getAuth().isAdmin && Array.isArray(container.permissionsPreCheck)) {\n const actions = await asyncComputeRealValue(container.permissionsPreCheck);\n return validatePermissions(actions);\n }\n}\nexport function preCheckPermissionsForAny(data) {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\nexport async function validatePermissions(usedActions) {\n // Do not request known actions.\n const uncheckedActions = usedActions.filter(action => !checkedPermissions.includes(action));\n if (uncheckedActions.length === 0) {\n return;\n }\n const checkingTasks = [];\n const restActions = [];\n for (const action of uncheckedActions) {\n const promise = checkingPermissions.get(action);\n if (promise) {\n checkingTasks.push(promise);\n } else {\n restActions.push(action);\n }\n }\n if (restActions.length > 0) {\n const task = (async () => {\n try {\n const result = await PermissionApi_validatePermissions({\n actions: restActions\n }, {\n noAbortOnRouteChange: true\n });\n for (const item of result.actions) {\n permissionMap.set(item.action, item.authorizationStatus);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n } finally {\n checkedPermissions.push(...restActions);\n }\n })();\n for (const action of restActions) {\n checkingPermissions.set(action, task);\n }\n checkingTasks.push(task);\n }\n await Promise.all(checkingTasks);\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions() {\n if (!isLoggedIn()) {\n return false;\n }\n if (getAuth().isAdmin) {\n return true;\n }\n for (var _len = arguments.length, actions = new Array(_len), _key = 0; _key < _len; _key++) {\n actions[_key] = arguments[_key];\n }\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(`Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`);\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks() {\n checkingPermissions.clear();\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n//# sourceMappingURL=checkPermissions.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nconst RETRY_TIMEOUT_UNIT = 1000;\nexport const RETRY_LIMIT = 5;\nvar _url = /*#__PURE__*/new WeakMap();\nvar _ws = /*#__PURE__*/new WeakMap();\nvar _queuedMessages = /*#__PURE__*/new WeakMap();\nvar _messageListeners = /*#__PURE__*/new WeakMap();\nvar _closeListeners = /*#__PURE__*/new WeakMap();\nvar _retryCount = /*#__PURE__*/new WeakMap();\nvar _closed = /*#__PURE__*/new WeakMap();\nvar _MessageService_brand = /*#__PURE__*/new WeakSet();\nexport class MessageService {\n constructor(url) {\n _classPrivateMethodInitSpec(this, _MessageService_brand);\n _classPrivateFieldInitSpec(this, _url, void 0);\n _classPrivateFieldInitSpec(this, _ws, void 0);\n _classPrivateFieldInitSpec(this, _queuedMessages, []);\n _classPrivateFieldInitSpec(this, _messageListeners, new Set());\n _classPrivateFieldInitSpec(this, _closeListeners, new Set());\n _classPrivateFieldInitSpec(this, _retryCount, 0);\n _classPrivateFieldInitSpec(this, _closed, false);\n _classPrivateFieldSet(_url, this, url);\n }\n send(data) {\n // Connect when data is sent for the first time\n if (!_classPrivateFieldGet(_ws, this)) {\n _classPrivateFieldSet(_ws, this, _assertClassBrand(_MessageService_brand, this, _connect).call(this));\n }\n const stringifiedData = JSON.stringify(data);\n if (_classPrivateFieldGet(_ws, this).readyState === WebSocket.OPEN) {\n _classPrivateFieldGet(_ws, this).send(stringifiedData);\n } else {\n _classPrivateFieldGet(_queuedMessages, this).push(stringifiedData);\n }\n }\n onMessage(listener) {\n _classPrivateFieldGet(_messageListeners, this).add(listener);\n return () => {\n _classPrivateFieldGet(_messageListeners, this).delete(listener);\n };\n }\n onClose(listener) {\n _classPrivateFieldGet(_closeListeners, this).add(listener);\n return () => {\n _classPrivateFieldGet(_closeListeners, this).delete(listener);\n };\n }\n reset() {\n _classPrivateFieldGet(_queuedMessages, this).length = 0;\n _classPrivateFieldGet(_messageListeners, this).clear();\n _classPrivateFieldGet(_closeListeners, this).clear();\n }\n close() {\n var _classPrivateFieldGet2;\n _classPrivateFieldSet(_closed, this, true);\n if (((_classPrivateFieldGet2 = _classPrivateFieldGet(_ws, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.readyState) === WebSocket.OPEN) {\n _classPrivateFieldGet(_ws, this).close();\n }\n }\n}\nfunction _connect() {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket connecting ...\");\n const ws = new WebSocket(_classPrivateFieldGet(_url, this));\n let resetRetryCountTimeout;\n ws.addEventListener(\"open\", e => {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket open:\", e);\n\n // If server closes the socket not more than 1 second after it's opened,\n // we should not reset the retry count.\n resetRetryCountTimeout = setTimeout(() => {\n resetRetryCountTimeout = undefined;\n _classPrivateFieldSet(_retryCount, this, 0);\n }, 1e3);\n for (const msg of _classPrivateFieldGet(_queuedMessages, this)) {\n ws.send(msg);\n }\n _classPrivateFieldGet(_queuedMessages, this).length = 0;\n });\n ws.addEventListener(\"close\", e => {\n if (_classPrivateFieldGet(_closed, this)) {\n return;\n }\n if (resetRetryCountTimeout !== undefined) {\n clearTimeout(resetRetryCountTimeout);\n }\n // eslint-disable-next-line no-console\n console.log(\"WebSocket close:\", e);\n // Error code 1000 means that the connection was closed normally.\n if (e.code !== 1000) {\n _assertClassBrand(_MessageService_brand, this, _reconnect).call(this);\n }\n });\n ws.addEventListener(\"error\", e => {\n // No need to reconnect in error event listener,\n // there will always be a close event along with the error event.\n // eslint-disable-next-line no-console\n console.error(\"WebSocket error:\", e);\n });\n ws.addEventListener(\"message\", e => {\n const response = JSON.parse(e.data);\n for (const listener of _classPrivateFieldGet(_messageListeners, this)) {\n listener(response);\n }\n });\n return ws;\n}\nfunction _reconnect() {\n // istanbul ignore next: currently can't mock this\n if (_classPrivateFieldGet(_retryCount, this) >= RETRY_LIMIT) {\n // eslint-disable-next-line no-console\n console.error(\"WebSocket connect retry limit exceeded\");\n // Keep behavior as v2: emit close event only after retry limit exceeded\n for (const listener of _classPrivateFieldGet(_closeListeners, this)) {\n listener();\n }\n return;\n }\n // Double the timeout for each retry\n const delay = Math.pow(2, _classPrivateFieldGet(_retryCount, this)) * RETRY_TIMEOUT_UNIT;\n // eslint-disable-next-line no-console\n console.log(\"WebSocket will reconnect after %d seconds\", delay / 1000);\n setTimeout(() => {\n var _this$retryCount, _this$retryCount2;\n _classPrivateFieldSet(_retryCount, this, (_this$retryCount = _classPrivateFieldGet(_retryCount, this), _this$retryCount2 = _this$retryCount++, _this$retryCount)), _this$retryCount2;\n _classPrivateFieldSet(_ws, this, _assertClassBrand(_MessageService_brand, this, _connect).call(this));\n }, delay);\n}\n//# sourceMappingURL=MessageService.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateGetter from \"@babel/runtime/helpers/classPrivateGetter\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { escapeRegExp } from \"lodash\";\nimport { MessageService, RETRY_LIMIT } from \"./MessageService.js\";\nvar _ms = /*#__PURE__*/new WeakMap();\nvar _memoizedChannels = /*#__PURE__*/new WeakMap();\nvar _channelPayloads = /*#__PURE__*/new WeakMap();\nvar _MessageDispatcher_brand = /*#__PURE__*/new WeakSet();\nexport class MessageDispatcher {\n constructor() {\n _classPrivateMethodInitSpec(this, _MessageDispatcher_brand);\n _classPrivateFieldInitSpec(this, _ms, void 0);\n _classPrivateFieldInitSpec(this, _memoizedChannels, {\n sub: new Map(),\n unsub: new Map()\n });\n _classPrivateFieldInitSpec(this, _channelPayloads, new Map());\n }\n subscribe(channel, payload) {\n const stringifiedPayload = JSON.stringify(payload);\n return _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, \"sub\", channel, payload, stringifiedPayload);\n }\n unsubscribe(channel) {\n const stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n if (!stringifiedPayload) {\n const msg = `The message channel to unsubscribe \"${channel}\" is not found`;\n // eslint-disable-next-line no-console\n console.error(msg);\n return Promise.reject(new Error(msg));\n }\n const payload = JSON.parse(stringifiedPayload);\n const result = _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, \"unsub\", channel, payload, stringifiedPayload);\n _classPrivateFieldGet(_memoizedChannels, this).sub.delete(stringifiedPayload);\n result.then(() => {\n _classPrivateFieldGet(_channelPayloads, this).delete(channel);\n });\n return result;\n }\n onMessage(channel, listener) {\n let stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n let warned = false;\n return _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {\n if (!stringifiedPayload) {\n stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n }\n if (!stringifiedPayload) {\n if (!warned) {\n // eslint-disable-next-line no-console\n console.error(`Message channel: \"${channel}\" not found`);\n warned = true;\n }\n return;\n }\n if (response.event === \"MESSAGE.PUSH\" && matchMessageChannel(stringifiedPayload, response.payload)) {\n listener(response.payload.message);\n }\n });\n }\n onClose(listener) {\n return _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onClose(listener);\n }\n reset() {\n var _classPrivateFieldGet2;\n _classPrivateFieldGet(_memoizedChannels, this).sub.clear();\n _classPrivateFieldGet(_memoizedChannels, this).unsub.clear();\n _classPrivateFieldGet(_channelPayloads, this).clear();\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_ms, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.reset();\n }\n}\nfunction _get_ms(_this) {\n if (!_classPrivateFieldGet(_ms, _this)) {\n const protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n const url = `${protocol}//${window.location.host}${getBasePath()}api/websocket_service/v1/ws`;\n _classPrivateFieldSet(_ms, _this, new MessageService(url));\n }\n return _classPrivateFieldGet(_ms, _this);\n}\nfunction _subOrUnsub(type, channel, payload, stringifiedPayload) {\n const hit = _classPrivateFieldGet(_memoizedChannels, this)[type].get(stringifiedPayload);\n if (hit) {\n return hit;\n }\n const request = {\n event: type === \"sub\" ? \"TOPIC.SUB\" : \"TOPIC.UNSUB\",\n payload\n };\n const promise = new Promise((resolve, reject) => {\n const identity = getIdentity(payload);\n const disposeOnMessage = _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {\n const isSuccess = response.event === (type === \"sub\" ? \"TOPIC.SUB_SUCCESS\" : \"TOPIC.UNSUB_SUCCESS\");\n const isFailed = response.event === (type === \"sub\" ? \"TOPIC.SUB_FAILED\" : \"TOPIC.UNSUB_FAILED\");\n if ((isSuccess || isFailed) &&\n // Put this after event type checks, to prevent unnecessary\n // JSON stringify.\n identity === getIdentity(response.payload)) {\n (isSuccess ? resolve : reject)(response);\n disposeOnMessage();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n disposeOnClose();\n }\n });\n // istanbul ignore next: currently can't mock this\n const disposeOnClose = _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onClose(() => {\n // V2 will emit error callback for sub/unsub each time connect failed,\n // while v3 will emit only once after retry limit exceeded.\n // Keep the `EVENT.detail.retryCount` for compatibility.\n reject({\n retryCount: RETRY_LIMIT\n });\n disposeOnMessage();\n disposeOnClose();\n });\n _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).send(request);\n });\n if (type === \"sub\") {\n _classPrivateFieldGet(_channelPayloads, this).set(channel, stringifiedPayload);\n }\n _classPrivateFieldGet(_memoizedChannels, this)[type].set(stringifiedPayload, promise);\n return promise;\n}\nfunction getIdentity(payload) {\n const {\n system,\n topic\n } = payload;\n return JSON.stringify({\n system,\n topic\n });\n}\nfunction matchMessageChannel(stringifiedPayload, responsePayload) {\n const payload = JSON.parse(stringifiedPayload);\n return payload.system === responsePayload.system && (\n // Exact match\n payload.topic === responsePayload.topic ||\n // Wildcards match\n // For `ab.cd.*`:\n // - Matches `ab.cd.r` or `ab.cd.x.yz`\n // - DOES NOT match `ab.cd.x/yz` or `ab.x.cd` or `x.ab.cd.yz`\n typeof payload.topic === \"string\" && payload.topic.includes(\"*\") && new RegExp(`^${payload.topic.replace(/([^*]*)\\*([^*]*)/g, (_m, p1, p2) => `${escapeRegExp(p1)}[^/]*${escapeRegExp(p2)}`)}$`).test(responsePayload.topic));\n}\n//# sourceMappingURL=MessageDispatcher.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 查询独立部署小产品\n * @endpoint POST /api/v1/micro_app_standalone/search\n */\nexport var RuntimeApi_searchMicroAppStandalone = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.micro_app_standalone.runtime.SearchMicroAppStandalone@1.0.1 */(yield http.post(\"api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search\", data, options)).data\n );\n });\n return function RuntimeApi_searchMicroAppStandalone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=searchMicroAppStandalone.js.map","import { traverseStoryboardExpressions, collectInstalledAppsHasUsage } from \"@next-core/utils/storyboard\";\nimport { RuntimeApi_searchMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nconst checkingApps = new Map();\nconst checkedApps = new Map();\nexport function preCheckInstalledApps(storyboard, hasAppInBootstrap) {\n if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {\n const appIds = scanInstalledAppsUsage(storyboard);\n const searchIds = [];\n for (const appId of appIds) {\n // Do not check these apps already checking or in bootstrap.\n if (!checkingApps.has(appId) && !hasAppInBootstrap(appId)) {\n searchIds.push(appId);\n }\n }\n if (searchIds.length === 0) {\n return;\n }\n const promise = RuntimeApi_searchMicroAppStandalone({\n query: {\n appId: {\n $in: searchIds\n }\n },\n fields: [\"appId\", \"currentVersion\", \"installStatus\"]\n }, {\n noAbortOnRouteChange: true\n }).catch(error => {\n // Allow search micro app to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Get off site standalone micro-apps failed\", error);\n });\n for (const appId of searchIds) {\n checkingApps.set(appId, promise.then(result => {\n var _result$list;\n const app = result === null || result === void 0 || (_result$list = result.list) === null || _result$list === void 0 ? void 0 : _result$list.find(item => item.appId === appId);\n const checkedApp = app ? {\n ...app,\n id: appId\n } : undefined;\n checkedApps.set(appId, checkedApp);\n return checkedApp;\n }));\n }\n }\n}\nexport async function waitForCheckingApps(appIds) {\n await Promise.all(appIds.map(appId => checkingApps.get(appId)));\n}\nexport function getCheckedApp(appId) {\n if (window.STANDALONE_MICRO_APPS) {\n return checkedApps.get(appId);\n }\n}\nfunction scanInstalledAppsUsage(storyboard) {\n var _storyboard$meta;\n const usage = {\n usedArgs: new Set()\n };\n // `INSTALLED_APPS.has(...)` is not available in storyboard functions\n const {\n customTemplates,\n menus\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates, menus], (node, parent) => {\n collectInstalledAppsHasUsage(usage, node, parent);\n }, \"INSTALLED_APPS\");\n return [...usage.usedArgs];\n}\n//# sourceMappingURL=checkInstalledApps.js.map","import { createProviderClass } from \"@next-core/utils/general\";\nimport { http } from \"@next-core/http\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { createSSEStream } from \"@next-core/utils/general\";\nexport const FLOW_API_PROVIDER = \"core.provider-flow-api\";\nfunction hasFields(ext_fields, type) {\n return ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.some(item => item.source === type);\n}\nexport function processExtFields(ext_fields) {\n const hasQueryParams = hasFields(ext_fields, \"query\");\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (hasQueryParams) {\n const hasBodyParams = hasFields(ext_fields, \"body\");\n if (hasBodyParams) {\n // NOTE: The args order here is different from generated SDK,\n // in SDK, it's [params, data, options]\n // But we keep the current behavior for compatibility.\n const [data, params, options] = args;\n return {\n data: data,\n options: {\n params: params,\n ...options\n }\n };\n }\n const [params, options] = args;\n return {\n data: {},\n options: {\n params: params,\n ...options\n }\n };\n }\n\n // only hasBodyParams or default\n const [data, options] = args;\n return {\n data,\n options: options\n };\n}\nexport function hasFileType(request) {\n if ((request === null || request === void 0 ? void 0 : request.type) !== \"object\") {\n return false;\n }\n const processFields = fields => {\n return !isEmpty(fields) && fields.some(field => [\"file\", \"file[]\"].includes(field.type) || processFields(field.fields));\n };\n return processFields(request.fields);\n}\nexport function transformFormData(data) {\n if (data instanceof FormData) {\n return data;\n }\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n formData.append(key, v);\n });\n } else if (isObject(value) && !(value instanceof Blob) && !(value instanceof Date)) {\n Object.entries(value).forEach(_ref => {\n let [k, v] = _ref;\n formData.append(`${key}[${k}]`, v);\n });\n } else {\n formData.append(key, value);\n }\n }\n return formData;\n}\nexport async function callFlowApi(_ref2) {\n let {\n url,\n originalUri,\n method = \"GET\",\n responseWrapper = true,\n ext_fields,\n request,\n isFileType,\n stream\n } = _ref2;\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(method.toLowerCase());\n const defaultOptions = isFileType ? {\n responseType: \"blob\"\n } : {};\n let response;\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (isSimpleRequest) {\n var _originalUri$match$le, _originalUri$match, _request$fields$lengt, _request$fields;\n const noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === \"object\" && ((_originalUri$match$le = (_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) !== null && _originalUri$match$le !== void 0 ? _originalUri$match$le : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0);\n let params;\n let options;\n if (noParams) {\n [options] = args;\n } else {\n [params, options] = args;\n }\n if (stream) {\n var _options$headers, _options;\n const stream = await createSSEStream(http.getUrlWithParams(url, params), {\n ...defaultOptions,\n ...options,\n method,\n headers: Object.fromEntries([...new Headers((_options$headers = (_options = options) === null || _options === void 0 ? void 0 : _options.headers) !== null && _options$headers !== void 0 ? _options$headers : {}).entries()])\n });\n return stream;\n }\n response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...options\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n const data = isUploadType ? transformFormData(result.data) : result.data;\n if (stream) {\n var _result$options;\n const {\n body,\n headers\n } = http.getBodyAndHeaders(data, (_result$options = result.options) === null || _result$options === void 0 ? void 0 : _result$options.headers);\n const stream = await createSSEStream(url, {\n ...defaultOptions,\n ...result.options,\n method,\n headers: Object.fromEntries([...new Headers(headers !== null && headers !== void 0 ? headers : {}).entries()]),\n body\n });\n return stream;\n }\n response = await http.requestWithBody(method, url, data, {\n ...defaultOptions,\n ...result.options\n });\n }\n return (isFileType ? false : responseWrapper) ? response.data : response;\n}\nexport function registerFlowApiProvider() {\n customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));\n}\n//# sourceMappingURL=FlowApiProvider.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 批量契约搜索\n * @endpoint POST /api/v1/contract/batch_search\n */\nexport const ContractCenterApi_batchSearchContract = async (data, options) => /**! @contract easyops.api.next_builder.contract_center.BatchSearchContract@1.0.0 */(await http.post(\"api/gateway/next_builder.contract_center.BatchSearchContract/api/v1/contract/batch_search\", data, options)).data;\n//# sourceMappingURL=batchSearchContract.js.map","const contractsMap = new Map();\nconst widgetContractMap = new Map();\nconst debugContractMap = new Map();\nconst addContract = (contracts, map) => {\n contracts === null || contracts === void 0 || contracts.forEach(contract => {\n map.set(`${contract.namespaceId}.${contract.name}`, contract);\n });\n};\nexport function collectContract(contracts) {\n addContract(contracts, contractsMap);\n}\nexport function collectWidgetContract(contracts) {\n addContract(contracts, widgetContractMap);\n}\nexport function clearCollectWidgetContract() {\n widgetContractMap.clear();\n}\nexport function collectDebugContract(contracts) {\n addContract(contracts, debugContractMap);\n}\nexport function clearDebugContract() {\n debugContractMap.clear();\n}\nexport function getContract(name) {\n return contractsMap.get(name) || widgetContractMap.get(name) || debugContractMap.get(name);\n}\n//# sourceMappingURL=CollectContracts.js.map","import yaml from \"js-yaml\";\nimport { ContractCenterApi_batchSearchContract } from \"@next-api-sdk/next-builder-sdk\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { getContract } from \"./CollectContracts.js\";\nconst remoteContractCache = new Map();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider) {\n return provider.includes(\"@\");\n}\nexport async function getArgsOfFlowApi(provider, originalArgs, method, stream) {\n if (!provider.includes(\":\")) {\n throw new Error(`You're using legacy Custom API \"${provider}\" which is dropped in v3, please use Flow API instead`);\n }\n const apiDefinition = await fetchFlowApiDefinition(provider);\n if (!apiDefinition) {\n throw new FlowApiNotFoundError(`Flow API not found: \"${provider}\"`);\n }\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method, stream);\n}\nfunction getApiArgsFromApiProfile(api, originalArgs, method, stream) {\n const {\n uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n isFileType,\n request\n } = api;\n // `saveAs` requires the first argument to be the filename.\n const isDownload = method === \"saveAs\";\n let filename;\n let fixedArgs = originalArgs;\n if (isDownload) {\n if (Array.isArray(originalArgs)) {\n fixedArgs = originalArgs.slice();\n filename = fixedArgs.shift();\n } else {\n filename = originalArgs.filename;\n }\n }\n const {\n url,\n args\n } = getTransformedUriAndRestArgs(api, fixedArgs);\n return [...(isDownload ? [filename] : []), {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n stream\n }, ...args];\n}\nfunction getTransformedUriAndRestArgs(api, originalArgs) {\n const {\n uri,\n name,\n namespace,\n serviceName,\n version,\n method = \"GET\",\n request,\n ext_fields\n } = api;\n const prefix = version ? serviceName === \"logic.api.gateway\" || serviceName !== null && serviceName !== void 0 && serviceName.startsWith(\"logic.api.gateway.\") ? \"\" : serviceName ? `api/gateway/${serviceName}` : `api/gateway/${namespace}.${name}@${version}` : `api/gateway/api_service.${namespace}.${name}`;\n let transformedUri;\n let restArgs = [];\n if (Array.isArray(originalArgs)) {\n restArgs = originalArgs.slice();\n transformedUri = uri.replace(/:([^/]+)/g, () => restArgs.shift());\n } else {\n const restParams = {\n ...originalArgs.params\n };\n transformedUri = uri.replace(/:([^/]+)/g, (_, key) => {\n if (hasOwnProperty(restParams, key)) {\n const value = restParams[key];\n delete restParams[key];\n return value;\n }\n throw new Error(`Missing required param: \"${key}\"`);\n });\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(method.toLowerCase());\n if (isSimpleRequest) {\n var _uri$match$length, _uri$match, _request$fields$lengt, _request$fields;\n const noParams = (request === null || request === void 0 ? void 0 : request.type) === \"object\" && ((_uri$match$length = (_uri$match = uri.match(/:([^/]+)/g)) === null || _uri$match === void 0 ? void 0 : _uri$match.length) !== null && _uri$match$length !== void 0 ? _uri$match$length : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0);\n if (!noParams) {\n restArgs.push(restParams);\n }\n } else {\n const bodyField = ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.find(item => item.source === \"body\");\n if (bodyField) {\n let body;\n if (bodyField.name && hasOwnProperty(restParams, bodyField.name)) {\n body = restParams[bodyField.name];\n delete restParams[bodyField.name];\n }\n restArgs.push(body);\n }\n const queryField = ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.find(item => item.source === \"query\");\n if (queryField) {\n let query;\n if (queryField.name && hasOwnProperty(restParams, queryField.name)) {\n query = restParams[queryField.name];\n delete restParams[queryField.name];\n }\n restArgs.push(query);\n }\n if (!bodyField && !queryField) {\n restArgs.push(restParams);\n }\n }\n if (originalArgs.options) {\n restArgs.push(originalArgs.options);\n }\n }\n return {\n url: prefix ? prefix + transformedUri : transformedUri.replace(/^\\//, \"\"),\n args: restArgs\n };\n}\nfunction getApiProfileFromApiDefinition(provider, api) {\n var _contract$endpoint, _contract$response;\n const contract = typeof api.contract === \"string\" ? yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true\n }) : api.contract;\n const {\n uri,\n method = \"GET\",\n ext_fields\n } = (_contract$endpoint = contract === null || contract === void 0 ? void 0 : contract.endpoint) !== null && _contract$endpoint !== void 0 ? _contract$endpoint : {};\n const responseWrapper = contract !== null && contract !== void 0 && contract.response ? contract.response.wrapper !== false : false;\n if (!uri) {\n throw new Error(`Missing endpoint.uri in contract of provider \"${provider}\"`);\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: (contract === null || contract === void 0 || (_contract$response = contract.response) === null || _contract$response === void 0 ? void 0 : _contract$response.type) === \"file\",\n responseWrapper,\n request: contract === null || contract === void 0 ? void 0 : contract.request\n };\n}\nasync function fetchFlowApiDefinition(provider) {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n // Do not cache the result of `getContract`, which will lead to no contract\n // will be found when render twice immediately.\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request\n }\n };\n }\n let promise = remoteContractCache.get(provider);\n if (!promise) {\n promise = fetchFlowApiDefinitionFromRemote(namespaceName, name, version);\n remoteContractCache.set(provider, promise);\n }\n return promise;\n}\nasync function fetchFlowApiDefinitionFromRemote(namespace, name, version) {\n let contractData;\n const fullContractName = `${namespace}@${name}`;\n let error;\n try {\n const {\n list: contractList\n } = await ContractCenterApi_batchSearchContract({\n contract: [{\n fullContractName,\n version\n }]\n });\n contractData = contractList[0];\n } catch (e) {\n error = e;\n }\n if (!contractData) {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch Flow API definition for \"${fullContractName}:${version}\"`, error !== null && error !== void 0 ? error : \"Contract not found\");\n return null;\n }\n return {\n name: contractData.name,\n namespace: contractData.namespaceId,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request\n }\n };\n}\nclass FlowApiNotFoundError extends Error {\n constructor(message) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n this.name = \"FlowApiNotFoundError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FlowApiNotFoundError);\n }\n }\n}\n//# sourceMappingURL=FlowApi.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例\n * @endpoint POST /object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearch = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearch@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearch/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearch(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearch.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取菜单信息\n * @endpoint GET /api/v1/micro-app/menus/:menuId\n */\nexport var InstalledMicroAppApi_getMenusInfo = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (menuId, params, options) {\n return (/**! @contract easyops.api.micro_app.installed_micro_app.GetMenusInfo@1.0.0 */(yield http.get(\"api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/\".concat(menuId), _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function InstalledMicroAppApi_getMenusInfo(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getMenusInfo.js.map","export const symbolAppId = Symbol(\"appId\");\nexport const symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nexport const symbolOverrideApp = Symbol(\"overrideApp\");\n//# sourceMappingURL=constants.js.map","import { i18n } from \"@next-core/i18n\";\nimport { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from \"./constants.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\nexport async function mergeMenu(menuList, runtimeContext, helpers) {\n const mainMenu = menuList.find(menu => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList = [];\n const injectWithMenus = new Map();\n const menuWithI18n = new WeakMap();\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = `menu/${menu.menuId}~${menu.app[0].appId}+${menu.instanceId}`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(_ref => {\n let [lang, resources] = _ref;\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n await Promise.all(menuList.map(menu => loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)));\n for (const menu of menuList) {\n var _menu$items;\n if ((_menu$items = menu.items) !== null && _menu$items !== void 0 && _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 return {\n ...mainMenu,\n items: validMenuList.flatMap(menu =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp\n };\n}\nfunction processGroupInject(items, menu, injectWithMenus, menuWithI18n) {\n return items === null || items === void 0 ? void 0 : items.map(item => {\n var _processGroupInject;\n const foundInjectingMenus = 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: ((_processGroupInject = processGroupInject(item.children, menu, injectWithMenus, menuWithI18n)) !== null && _processGroupInject !== void 0 ? _processGroupInject : []).concat(foundInjectingMenus ? foundInjectingMenus.flatMap(injectingMenu =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(injectingMenu.items, injectingMenu, injectWithMenus, menuWithI18n)) : []),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp\n };\n });\n}\n//# sourceMappingURL=mergeMenu.js.map","import { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nexport async function loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers) {\n if (menu.dynamicItems && menu.itemsResolve) {\n const overrideAppId = menu.app[0].appId;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny(menu.itemsResolve)]\n };\n if (overrideAppId !== runtimeContext.app.id) {\n var _helpers$getStoryboar;\n newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS ? menu.overrideApp : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;\n newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);\n }\n const resolved = await helpers.resolveData({\n transform: \"items\",\n ...menu.itemsResolve\n }, newRuntimeContext);\n menu.items = resolved.items;\n }\n}\n//# sourceMappingURL=loadDynamicMenuItems.js.map","import { sortBy } from \"lodash\";\nexport function reorderMenu(menuData) {\n menuData.items = reorderMenuItems(menuData.items);\n}\nfunction reorderMenuItems(list) {\n return sortMenuItems(list).map(item => ({\n ...item,\n children: reorderMenuItems(item.children)\n }));\n}\nfunction sortMenuItems(list) {\n return sortBy(list, item => {\n var _item$sort;\n return (_item$sort = item.sort) !== null && _item$sort !== void 0 ? _item$sort : -Infinity;\n });\n}\n//# sourceMappingURL=reorderMenuItems.js.map","import { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from \"./constants.js\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { pipes } from \"@next-core/pipes\";\nimport { isEvaluable } from \"@next-core/cook\";\nexport function computeMenuData(data, overrideAppId, runtimeContext, helpers) {\n if (\"titleDataSource\" in data && isObject(data.titleDataSource) && Object.entries(data.titleDataSource).every(_ref => {\n let [, value] = _ref;\n return value === null || value === \"\";\n })) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n if (\"to\" in data && data.to && !isEvaluable(data.to)) {\n const yaml = pipes.yaml(data.to);\n if (isObject(yaml) && [\"pathname\", \"search\", \"hash\"].some(key => hasOwnProperty(yaml, key))) {\n data.to = yaml;\n }\n }\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n var _helpers$getStoryboar;\n const overrideApp = window.STANDALONE_MICRO_APPS ? data[symbolOverrideApp] : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace]\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true\n });\n}\nexport function computeMenuItems(items, runtimeContext, helpers) {\n return Promise.all(items.map(async _ref2 => {\n let {\n children,\n ...rest\n } = _ref2;\n const [computedRest, computedChildren] = await Promise.all([computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers), children && (await computeMenuItems(children, runtimeContext, helpers))]);\n return {\n ...computedRest,\n children: computedChildren\n };\n }));\n}\n//# sourceMappingURL=computeMenuData.js.map","import { isEmpty } from \"lodash\";\nimport { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nconst menuTitleCache = new Map();\nexport async function fetchMenuTitle(menuData) {\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 {\n objectId,\n instanceId,\n attributeId\n } = menuData.titleDataSource;\n const attr = attributeId !== null && attributeId !== void 0 ? attributeId : \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr\n });\n let title;\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//# sourceMappingURL=fetchMenuTitle.js.map","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 { computeMenuItems, computeMenuData } from \"./computeMenuData.js\";\nimport { fetchMenuTitle } from \"./fetchMenuTitle.js\";\nimport { getMenusOfStandaloneApp } from \"./getMenusOfStandaloneApp.js\";\nimport { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nimport { isBlockedHref, isBlockedUrl } from \"../auth.js\";\nconst menuPromises = new Map();\nconst menuCache = new Map();\nfunction transformMenuItems(menuItems) {\n return menuItems === null || menuItems === void 0 ? void 0 : menuItems.filter(checkIfOfComputed).map(item => {\n const children = transformMenuItems(item.children);\n const transformedMenuItem = item.type === \"group\" ? {\n type: \"group\",\n title: item.text,\n childLayout: item.childLayout,\n items: children,\n groupId: item.groupId,\n groupFrom: item.groupFrom\n } : children !== null && children !== void 0 && children.length ? {\n type: \"subMenu\",\n childLayout: item.childLayout,\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded\n } : isMenuItemBlocked(item) ? null : omit(item, [\"type\", \"items\", \"children\"]);\n return transformedMenuItem;\n }).filter(Boolean);\n}\nfunction isMenuItemBlocked(item) {\n return item.href ? isBlockedHref(item.href) : item.to ? isBlockedUrl(item.to) : false;\n}\nexport function getMenuById(menuId) {\n return menuCache.get(menuId);\n}\nexport function fetchMenuById(menuId, runtimeContext, helpers) {\n let promise = menuPromises.get(menuId);\n if (!promise) {\n promise = _fetchMenuById(menuId, runtimeContext, helpers);\n }\n return promise;\n}\nasync function _fetchMenuById(menuId, runtimeContext, helpers) {\n const menuList = window.STANDALONE_MICRO_APPS ? getMenusOfStandaloneApp(menuId, runtimeContext.app.id, helpers) : runtimeContext.flags[\"three-level-menu-layout\"] ? (await InstalledMicroAppApi_getMenusInfo(menuId, {\n menuObjectId: \"EASYOPS_STORYBOARD_MENU\"\n })).menus : (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 })).list;\n const menuData = await mergeMenu(menuList, runtimeContext, helpers);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n reorderMenu(menuData);\n const {\n items,\n app,\n ...restMenuData\n } = menuData;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny([items, restMenuData])]\n };\n delete newRuntimeContext.tplStateStoreId;\n delete newRuntimeContext.forEachItem;\n delete newRuntimeContext.forEachIndex;\n delete newRuntimeContext.forEachSize;\n const rootAppId = app[0].appId;\n const [computedMenuData, computedMenuItems] = await Promise.all([computeMenuData(restMenuData, rootAppId, newRuntimeContext, helpers), computeMenuItems(items, newRuntimeContext, helpers)]);\n const finalMenuData = {\n title: await fetchMenuTitle(computedMenuData),\n ...pick(computedMenuData, [\"icon\", \"link\", \"defaultCollapsed\", \"defaultCollapsedBreakpoint\"]),\n menuItems: transformMenuItems(computedMenuItems)\n };\n\n // Todo(steve): reconsider the menu cache strategy\n menuCache.set(menuId, finalMenuData);\n}\n//# sourceMappingURL=fetchMenuById.js.map","export function getMenusOfStandaloneApp(menuId, appId, helpers) {\n var _ref, _storyboard$meta$inje, _storyboard$meta, _storyboard$meta2;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storyboard = helpers.getStoryboardByAppId(appId);\n const 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 : [];\n return menus.filter(menu => menu.menuId === menuId).map(menu => {\n var _menu$app;\n return {\n ...menu,\n ...((_menu$app = menu.app) !== null && _menu$app !== void 0 && (_menu$app = _menu$app[0]) !== null && _menu$app !== void 0 && _menu$app.appId ? {} : {\n app: [{\n appId\n }]\n })\n };\n });\n\n // Todo: maybe: fetch menus from STANDALONE_MENU@EASYOPS\n}\n//# sourceMappingURL=getMenusOfStandaloneApp.js.map","export const events = [];\nconst MAXIMUM_WAITING_TIME = 5 * 1000;\nconst MAXIMUM_LOGGED_EVENTS = 10;\nlet timer = null;\nexport const transportOptions = {\n maxWaitingTime: MAXIMUM_WAITING_TIME,\n maxLoggedEvents: MAXIMUM_LOGGED_EVENTS\n};\nexport function createTransport(api, options) {\n Object.assign(transportOptions, {\n ...options,\n api\n });\n return {\n sendOnExit,\n emit\n };\n}\nfunction nextTime(callback) {\n return (window.requestIdleCallback || window.requestAnimationFrame || (cb => setTimeout(cb, 17)))(callback);\n}\nfunction emit() {\n clearTimeout(timer);\n events.length > transportOptions.maxLoggedEvents ? send() : timer = setTimeout(send, transportOptions.maxWaitingTime);\n}\nfunction send() {\n if (events.length === 0) {\n return;\n }\n const transportEvents = events.splice(0, transportOptions.maxLoggedEvents);\n const transportData = buildTransportData(transportEvents);\n sendBeacon(transportOptions.api, transportData);\n events.length && nextTime(send);\n}\nfunction sendBeacon(requestUrl, data) {\n const headers = {\n type: \"application/json\"\n };\n const blob = new Blob([JSON.stringify(data)], headers);\n window.navigator.sendBeacon(requestUrl, blob);\n}\nfunction sendOnExit() {\n window.addEventListener(\"beforeunload\", send, false);\n}\nfunction buildTransportData(data) {\n return {\n model: \"easyops.FRONTEND_STAT\",\n columns: [\"_ver\", \"st\", \"et\", \"lt\", \"size\", \"time\", \"traceId\", \"code\", \"duration\", \"page\", \"uid\", \"username\", \"api\", \"type\", \"msg\", \"status\", \"pageId\", \"route\", \"apiCount\", \"maxApiTimeCost\", \"apiSizeCost\", \"pageTitle\"],\n data\n };\n}\n//# sourceMappingURL=transport.js.map","import { createTransport, events } from \"./transport.js\";\nlet initialized = false;\nlet transport;\nlet pageState = null;\nlet isFirstPageView = true;\nconst stashedApiMetrics = [];\nexport function initialize(api) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (initialized) {\n return;\n }\n initialized = true;\n if (!transport) {\n transport = createTransport(api, options);\n transport.sendOnExit();\n }\n}\nexport function createPageView() {\n stashedApiMetrics.length = 0;\n pageState = null;\n}\nexport function finishPageView(metric) {\n const pageId = generateUUID();\n const {\n lt,\n route\n } = metric;\n pageState = {\n lt,\n route,\n pageId\n };\n events.push({\n ...metric,\n pageId,\n apiCount: stashedApiMetrics.length,\n maxApiTimeCost: Math.max(0, ...stashedApiMetrics.map(api => api.duration)),\n size: stashedApiMetrics.map(api => api.size).filter(size => size > 0).reduce((prev, current) => prev + current, 0)\n });\n for (const item of stashedApiMetrics) {\n events.push({\n ...item,\n ...pageState\n });\n }\n stashedApiMetrics.length = 0;\n transport.emit();\n}\nexport function earlyFinishPageView() {\n events.push(...stashedApiMetrics);\n stashedApiMetrics.length = 0;\n}\nexport function pushApiMetric(metric) {\n if (pageState) {\n events.push({\n ...metric,\n type: \"apiRequest\",\n ...pageState\n });\n } else {\n stashedApiMetrics.push(metric);\n }\n}\n\n// Ref https://medium.com/teads-engineering/generating-uuids-at-scale-on-the-web-2877f529d2a2\nfunction generateUUID() {\n const url = URL.createObjectURL(new Blob([]));\n let uuid = url.substring(url.lastIndexOf(\"/\") + 1);\n URL.revokeObjectURL(url);\n // 第一次渲染加上特殊标记\n if (isFirstPageView) {\n uuid = \"88-\" + uuid;\n isFirstPageView = false;\n }\n return uuid;\n}\n//# sourceMappingURL=analytics.js.map","import { HttpResponseError, HttpParseError, HttpAbortError } from \"@next-core/http\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { getAuth } from \"../auth.js\";\nimport { pushApiMetric } from \"./analytics.js\";\nconst symbolHttpAnalytics = Symbol(\"HttpAnalytics\");\nexport function onRequest(config) {\n const perfStartTime = Math.round(performance.now());\n const st = Date.now();\n config[symbolHttpAnalytics] = {\n st,\n time: Math.round(st / 1000),\n perfStartTime\n };\n return config;\n}\nexport function onResponse(response, config) {\n return onResponseOrError(false, response, config);\n}\nexport function onResponseError(error, config) {\n return onResponseOrError(true, error, config);\n}\nfunction onResponseOrError(hasError, responseOrError, config) {\n const perfEndTime = Math.round(performance.now());\n const et = Date.now();\n const {\n [symbolHttpAnalytics]: meta,\n url\n } = config;\n if (meta && !(hasError && responseOrError instanceof HttpAbortError)) {\n delete config[symbolHttpAnalytics];\n const {\n st,\n time,\n perfStartTime\n } = meta;\n const {\n userInstanceId: uid,\n username\n } = getAuth();\n let code;\n let message;\n let traceId;\n let size;\n let status;\n let headers;\n let data;\n if (hasError) {\n const isHttpResponseError = responseOrError instanceof HttpResponseError;\n if (isHttpResponseError || responseOrError instanceof HttpParseError) {\n ({\n status,\n headers\n } = responseOrError.response);\n if (isHttpResponseError) {\n data = responseOrError.responseJson;\n }\n }\n } else {\n ({\n status,\n data,\n headers\n } = responseOrError);\n }\n if (isObject(data)) {\n ({\n code,\n message\n } = data);\n }\n if (headers instanceof Headers) {\n traceId = headers.get(\"x-b3-traceid\");\n size = headers.get(\"content-length\");\n }\n pushApiMetric({\n st,\n _ver: st,\n uid,\n username,\n time,\n et,\n page: location.href,\n duration: perfEndTime - perfStartTime,\n api: url,\n type: \"api\",\n code: code !== null && code !== void 0 ? code : -1,\n msg: message !== null && message !== void 0 ? message : \"\",\n status,\n traceId: traceId !== null && traceId !== void 0 ? traceId : \"\",\n size: size ? Number(size) : -1\n });\n }\n return hasError ? Promise.reject(responseOrError) : responseOrError;\n}\n//# sourceMappingURL=http.js.map","import { createPageView, earlyFinishPageView, finishPageView } from \"./analytics.js\";\nimport { getAuth } from \"../auth.js\";\nexport function create() {\n const perfStartTime = Math.round(performance.now());\n const startTime = Date.now();\n createPageView();\n return function finish(_ref) {\n let {\n status,\n path,\n pageTitle\n } = _ref;\n if (status !== \"ok\") {\n earlyFinishPageView();\n return;\n }\n const renderTime = Math.round(performance.now()) - perfStartTime;\n const endTime = Date.now();\n const {\n username\n } = getAuth();\n finishPageView({\n type: \"page\",\n page: location.href,\n _ver: startTime,\n time: Math.round(startTime / 1000),\n st: startTime,\n et: endTime,\n lt: renderTime,\n pageTitle,\n username,\n route: path\n });\n\n // For bricks which would take actions with render time.\n window.dispatchEvent(new CustomEvent(\"route.render\", {\n detail: {\n renderTime\n }\n }));\n };\n}\n//# sourceMappingURL=pageView.js.map","// istanbul ignore file\nimport { checkPermissions as _checkPermissions, preCheckPermissions, preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport { MessageDispatcher } from \"./websocket/MessageDispatcher.js\";\nimport * as authV3 from \"./auth.js\";\nimport { authV2Factory } from \"./auth-v2.js\";\nimport * as _checkInstalledApps from \"./checkInstalledApps.js\";\nexport { _checkInstalledApps as checkInstalledApps };\nimport * as _flowApi from \"./flowApi/index.js\";\nexport { _flowApi as flowApi };\nimport * as _menu from \"./menu/index.js\";\nexport { _menu as menu };\nimport * as _analytics from \"./analytics/index.js\";\nexport { _analytics as analytics };\nexport const checkPermissions = Object.freeze({\n checkPermissions: _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute\n});\nexport const messageDispatcher = new MessageDispatcher();\nexport const auth = authV2Factory() || authV3;\n//# sourceMappingURL=index.js.map","// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(pick(v2Kit, [\"authenticate\", \"getAuth\", \"isLoggedIn\", \"logout\", \"addPathToBlackList\", \"isBlockedPath\", \"isBlockedUrl\", \"isBlockedHref\"]));\n }\n}\n//# sourceMappingURL=auth-v2.js.map"],"names":["PermissionApi_validatePermissions","_ref","data","options","http","post","_x","_x2","apply","this","arguments","auth","pathBlackListSet","Set","authenticate","newAuth","_newAuth$license","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","blackList","getAuth","logout","key","keys","undefined","checkingPermissions","clear","checkedPermissions","length","permissionMap","isLoggedIn","addPathToBlackList","path","add","isBlockedPath","pathname","some","matchPath","isBlockedUrl","url","createLocation","isBlockedHref","href","basePath","getBasePath","URL","location","origin","startsWith","substring","Map","preCheckPermissionsForAny","validatePermissions","scanPermissionActionsInAny","async","usedActions","uncheckedActions","filter","action","includes","checkingTasks","restActions","promise","get","push","task","result","actions","noAbortOnRouteChange","item","set","authorizationStatus","console","error","Promise","all","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","send","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","onMessage","listener","delete","onClose","reset","close","_classPrivateFieldGet2","log","ws","resetRetryCountTimeout","addEventListener","e","setTimeout","msg","clearTimeout","code","_reconnect","response","parse","delay","Math","pow","_this$retryCount","_ms","_memoizedChannels","_channelPayloads","_MessageDispatcher_brand","_get_ms","_this","protocol","window","host","_subOrUnsub","type","channel","payload","stringifiedPayload","hit","request","event","resolve","reject","identity","getIdentity","disposeOnMessage","isSuccess","isFailed","disposeOnClose","retryCount","system","topic","RuntimeApi_searchMicroAppStandalone","checkingApps","checkedApps","preCheckInstalledApps","storyboard","hasAppInBootstrap","STANDALONE_MICRO_APPS","NO_AUTH_GUARD","appIds","_storyboard$meta","usage","usedArgs","customTemplates","menus","meta","traverseStoryboardExpressions","routes","node","parent","collectInstalledAppsHasUsage","scanInstalledAppsUsage","searchIds","appId","has","query","$in","fields","catch","then","_result$list","app","list","find","checkedApp","id","waitForCheckingApps","map","getCheckedApp","FLOW_API_PROVIDER","hasFields","ext_fields","source","callFlowApi","_ref2","originalUri","method","responseWrapper","isFileType","stream","isSimpleRequest","toLowerCase","defaultOptions","responseType","_len2","args","Array","_key2","_originalUri$match$le","_originalUri$match","_request$fields$lengt","_request$fields","params","_options$headers","_options","match","createSSEStream","getUrlWithParams","headers","fromEntries","Headers","entries","simpleRequest","isUploadType","processFields","isEmpty","field","hasFileType","hasQueryParams","_len","_key","processExtFields","FormData","formData","value","isArray","forEach","v","append","isObject","Blob","Date","k","transformFormData","_result$options","body","getBodyAndHeaders","requestWithBody","registerFlowApiProvider","customElements","define","createProviderClass","ContractCenterApi_batchSearchContract","contractsMap","widgetContractMap","debugContractMap","addContract","contracts","contract","namespaceId","name","collectContract","collectWidgetContract","clearCollectWidgetContract","collectDebugContract","clearDebugContract","remoteContractCache","isFlowApiProvider","provider","getArgsOfFlowApi","originalArgs","Error","apiDefinition","namespaceName","nameWithVersion","split","version","getContract","namespace","serviceName","endpoint","contractData","fullContractName","contractList","fetchFlowApiDefinitionFromRemote","fetchFlowApiDefinition","FlowApiNotFoundError","apiProfile","api","_contract$endpoint","_contract$response","schema","json","uri","wrapper","getApiProfileFromApiDefinition","apiMethod","isDownload","filename","fixedArgs","slice","shift","prefix","transformedUri","restArgs","replace","restParams","_","hasOwnProperty","_uri$match$length","_uri$match","bodyField","queryField","getTransformedUriAndRestArgs","getApiArgsFromApiProfile","message","super","captureStackTrace","InstanceApi_postSearch","objectId","concat","_x3","InstalledMicroAppApi_getMenusInfo","menuId","symbolAppId","Symbol","symbolMenuI18nNamespace","symbolOverrideApp","mergeMenu","menuList","runtimeContext","helpers","mainMenu","menu","validMenuList","injectWithMenus","menuWithI18n","i18n","menuI18nNamespace","instanceId","lang","resources","addResourceBundle","dynamicItems","itemsResolve","overrideAppId","newRuntimeContext","pendingPermissionsPreCheck","_helpers$getStoryboar","overrideApp","getStoryboardByAppId","appendI18nNamespace","resolved","resolveData","transform","items","loadDynamicMenuItems","_menu$items","injectMenuGroupId","injectingMenus","flatMap","processGroupInject","_processGroupInject","foundInjectingMenus","groupId","children","injectingMenu","reorderMenu","menuData","reorderMenuItems","sortBy","_item$sort","sort","sortMenuItems","computeMenuData","titleDataSource","every","if","to","isEvaluable","yaml","pipes","asyncComputeRealValue","ignoreSymbols","computeMenuItems","rest","computedRest","computedChildren","menuTitleCache","fetchMenuTitle","title","cacheKey","cachedTitle","attributeId","attr","instanceData","primary","join","String","menuPromises","menuCache","transformMenuItems","menuItems","checkIfOfComputed","text","childLayout","groupFrom","icon","defaultExpanded","isMenuItemBlocked","omit","Boolean","getMenuById","fetchMenuById","_storyboard$meta$inje","_storyboard$meta2","injectMenus","_menu$app","getMenusOfStandaloneApp","flags","menuObjectId","page","page_size","link","defaultCollapsed","defaultCollapsedBreakpoint","$eq","$size","$gt","restMenuData","tplStateStoreId","forEachItem","forEachIndex","forEachSize","rootAppId","computedMenuData","computedMenuItems","finalMenuData","pick","_fetchMenuById","events","timer","transportOptions","maxWaitingTime","maxLoggedEvents","emit","transportData","model","columns","splice","callback","requestUrl","blob","navigator","sendBeacon","requestIdleCallback","requestAnimationFrame","cb","sendOnExit","transport","initialized","pageState","isFirstPageView","stashedApiMetrics","initialize","createTransport","symbolHttpAnalytics","onRequest","config","perfStartTime","round","performance","now","st","time","onResponse","onResponseOrError","onResponseError","hasError","responseOrError","perfEndTime","et","HttpAbortError","uid","traceId","size","status","isHttpResponseError","HttpResponseError","HttpParseError","responseJson","metric","_ver","duration","Number","create","startTime","pageTitle","renderTime","endTime","pageId","createObjectURL","uuid","lastIndexOf","revokeObjectURL","generateUUID","lt","route","apiCount","maxApiTimeCost","max","reduce","prev","current","finishPageView","dispatchEvent","CustomEvent","detail","freeze","checkPermissions","preCheckPermissions","scanPermissionActionsInStoryboard","preCheckPermissionsForBrickOrRoute","container","permissionsPreCheck","messageDispatcher","sub","unsub","subscribe","unsubscribe","warned","responsePayload","RegExp","_m","p1","p2","escapeRegExp","test","matchMessageChannel","v2Kit","getV2RuntimeFromDll","authV2Factory"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2341],{5987:(e,t,n)=>{n.d(t,{P:()=>i});var a=n(45060),r=n(84769),o=n(97887);function i(e){const{bytes:t,uri:n,mimeType:i,name:l}=e,s=l||(0,r.t)(r.K.UNTITLED);if(t)(0,a.saveAs)(new Blob([Uint8Array.from(atob(t),(e=>e.charCodeAt(0)))],{type:i}),s);else if(n){const e=document.createElement("a");e.href=(0,o.V)(n),e.download=s,e.target="_blank",document.body.appendChild(e),e.click(),document.body.removeChild(e)}}},6671:(e,t,n)=>{n.d(t,{f:()=>T});var a=n(18769),r=n.n(a),o=n(72591),i=n.n(o),l=n(1740),s=n.n(l),c=n(88128),d=n.n(c),p=n(30855),u=n.n(p),m=n(93051),f=n.n(m),g=n(73656),h=n.n(g),v=n(83182),b={};b.styleTagTransform=h(),b.setAttributes=u(),b.insert=d().bind(null,"head"),b.domAPI=s(),b.insertStyleElement=f(),i()(v.A,b);const x=v.A&&v.A.locals?v.A.locals:void 0;var w=n(30672),y=n(40177),k=n(5987),E=n(97887),A=n(76720),I=n(84769),N=n(69493);function T(e){let{images:{files:t,file:n},fromModal:o}=e;const[i,l]=(0,a.useState)(n),{setActiveImages:s}=(0,a.useContext)(A.j);(0,a.useEffect)((()=>{l(n)}),[n]);const c=(0,a.useCallback)((e=>{let n=t.indexOf(i)+e;n<0?n=t.length-1:n>=t.length&&(n=0),l(t[n])}),[i,t]);return(0,a.useEffect)((()=>{const e=e=>{if("ArrowLeft"===e.key)c(-1);else{if("ArrowRight"!==e.key)return;c(1)}e.preventDefault(),e.stopPropagation()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[c,s]),r().createElement("div",{className:x.preview,style:o?{zIndex:1e3}:{}},r().createElement("div",{className:x.header},r().createElement(w.Py,{icon:y.vD,onClick:()=>{(0,k.P)(i)}},(0,I.t)(I.K.DOWNLOAD))),r().createElement("div",{className:x.body},r().createElement("div",{className:x.aside},r().createElement("button",{className:N.A["floating-button"],onClick:()=>{c(-1)}},r().createElement(w.Bj,{lib:"antd",icon:"left"}))),r().createElement("div",{className:x.content},r().createElement("img",{src:(0,E.V)(i.uri),alt:i.name})),r().createElement("div",{className:x.aside},r().createElement("button",{className:N.A["floating-button"],onClick:()=>{c(1)}},r().createElement(w.Bj,{lib:"antd",icon:"right"})))),r().createElement("div",{className:x.footer},r().createElement("ul",{className:x.images},t.map(((e,t)=>{const n=e===i;return r().createElement("li",{key:t,className:n?x.active:void 0,onClick:()=>l(e)},r().createElement("img",{src:(0,E.V)(e.uri),alt:e.name,fetchPriority:"low"}))})))),r().createElement(w.Py,{className:x.close,icon:y.LQ,onClick:()=>{s(null)}}))}},11190:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".heading--Mi2u66PA{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title--t7OpwWbH{font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;--shine-text-color:rgba(38,38,38,0.65);--shine-text-highlight-color:#dcdcdc}ai-portal\\.cruise-canvas .title--t7OpwWbH{text-indent:4px}ai-portal\\.cruise-canvas .heading--Mi2u66PA{margin-bottom:10px}",""]),i.locals={heading:"heading--Mi2u66PA",title:"title--t7OpwWbH"};const l=i},20555:(e,t,n)=>{n.d(t,{j:()=>k});var a=n(18769),r=n.n(a),o=n(30981),i=n(72591),l=n.n(i),s=n(1740),c=n.n(s),d=n(88128),p=n.n(d),u=n(30855),m=n.n(u),f=n(93051),g=n.n(f),h=n(73656),v=n.n(h),b=n(22291),x={};x.styleTagTransform=v(),x.setAttributes=m(),x.insert=p().bind(null,"head"),x.domAPI=c(),x.insertStyleElement=g(),l()(b.A,x);const w=b.A&&b.A.locals?b.A.locals:void 0,y=(0,o.wrapBrick)("presentational.code-wrapper");function k(e){var t;let{node:n,...a}=e;return r().createElement(y,{className:w["code-wrapper"],preProps:a,showCopyButton:!(null===(t=a.className)||void 0===t||!t.includes("shiki")),themeVariant:"elevo"})}},22291:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".code-wrapper--jieEbxla::part(pre){border:1px solid #ccd1de}.code-wrapper--jieEbxla::part(mermaid){border:none;background:none}",""]),i.locals={"code-wrapper":"code-wrapper--jieEbxla"};const l=i},23241:(e,t,n)=>{function a(e){const t=document.createElement("div");return t.dataset.rootId=e,t.style.position="absolute",t.style.width=t.style.height="0",document.body.append(t),t}n.d(t,{d:()=>a})},24564:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(8798);const r=new Map;function o(e){const t=r.get(e);if(t)return t;const n=async function(e){var t;const n=null===(t=(await(0,a.v)({employeeId:e})).list)||void 0===t?void 0:t[0];return(null==n?void 0:n.employeeId)===e?n:void 0}(e);return r.set(e,n),n}},29386:(e,t,n)=>{n.d(t,{w:()=>d});var a=n(89575),r=n(18769),o=n.n(r),i=n(52208),l=n(31078);const s={pre:n(20555).j},c={theme:"light-plus"};function d(e){let{className:t,...n}=e;const d=(0,r.useRef)(null),{setHoverOnScrollableContent:p}=(0,r.useContext)(l.Q),u=(0,r.useCallback)((e=>{let t=!1;for(const n of e.nativeEvent.composedPath()){if(n===d.current)break;if((n instanceof HTMLTableElement||n instanceof HTMLPreElement)&&n.scrollWidth>n.clientWidth){t=!0;break}}p(t)}),[p]),m=(0,r.useCallback)((()=>{p(!1)}),[p]);return o().createElement("div",{className:t,onMouseMove:u,onMouseLeave:m},o().createElement(i.N,(0,a.A)({},n,{components:s,shiki:c})))}},30672:(e,t,n)=>{n.d(t,{Bj:()=>o,EM:()=>l,Gx:()=>i,IV:()=>d,Py:()=>c,n$:()=>m,p9:()=>p,ui:()=>f,xb:()=>s,yQ:()=>u});var a=n(30981),r=n(40410);const o=(0,a.wrapBrick)("eo-icon"),i=(0,a.wrapBrick)("eo-button"),l=(0,a.wrapBrick)("eo-link"),s=((0,a.wrapBrick)("eo-tooltip"),(0,a.wrapBrick)("eo-drawer",{onClose:"close",onOpen:"open"})),c=(0,a.wrapBrick)("ai-portal.icon-button"),d=(0,a.wrapBrick)("ai-portal.chat-input",{onChatSubmit:"chat.submit",onTerminate:"terminate"}),p=(0,a.wrapBrick)("ai-portal.show-case"),u=(0,a.wrapBrick)("eo-code-block"),m=(0,a.wrapBrick)("ai-portal.running-flow",{onActivityClick:"activity.click"}),f=(0,r.unwrapProvider)("basic.show-dialog");(0,r.unwrapProvider)("basic.copy-to-clipboard")},31078:(e,t,n)=>{n.d(t,{Q:()=>a});const a=(0,n(18769).createContext)({onNodeResize:()=>{},setActiveNodeId:()=>{},hoverOnScrollableContent:!1,setHoverOnScrollableContent:()=>{}})},34663:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".floating-button--s8FIucxe{display:flex;align-items:center;justify-content:center;padding:0;background:#fff;box-shadow:0px 4px 8px 0px rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.02);border-radius:999px;cursor:pointer}.floating-button--s8FIucxe:hover{box-shadow:0px 6px 12px 0px rgba(0,0,0,0.1);border-color:rgba(0,0,0,0.08)}.floating-button--s8FIucxe:focus{outline:none}",""]),i.locals={"floating-button":"floating-button--s8FIucxe"};const l=i},35430:(e,t,n)=>{n.d(t,{n:()=>A});var a=n(18769),r=n.n(a),o=n(72591),i=n.n(o),l=n(1740),s=n.n(l),c=n(88128),d=n.n(c),p=n(30855),u=n.n(p),m=n(93051),f=n.n(m),g=n(73656),h=n.n(g),v=n(90108),b={};b.styleTagTransform=h(),b.setAttributes=u(),b.insert=d().bind(null,"head"),b.domAPI=s(),b.insertStyleElement=f(),i()(v.A,b);const x=v.A&&v.A.locals?v.A.locals:void 0;var w=n(30672),y=n(76720),k=n(53373),E=n.n(k);function A(e){let{action:t,ui:n}=e;const{humanInput:o,replay:i}=(0,a.useContext)(y.j),[l,s]=(0,a.useState)(!1);return"select"===t.type?null:r().createElement("div",{className:E()(x["human-action"],{[x.canvas]:"chat"!==n})},r().createElement(w.Gx,{type:"primary",themeVariant:"elevo",shape:"chat"===n?void 0:"round",disabled:l,onClick:()=>{i||(o(null,t.confirmText||"确认"),s(!0))}},t.confirmText||"确认"))}},36903:(e,t,n)=>{n.d(t,{A:()=>v});var a=n(72591),r=n.n(a),o=n(1740),i=n.n(o),l=n(88128),s=n.n(l),c=n(30855),d=n.n(c),p=n(93051),u=n.n(p),m=n(73656),f=n.n(m),g=n(91525),h={};h.styleTagTransform=f(),h.setAttributes=d(),h.insert=s().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=u(),r()(g.A,h);const v=g.A&&g.A.locals?g.A.locals:void 0},38706:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".preview--F7764WOO{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background:#fff;display:flex;flex-direction:column;align-items:center}.header--EVmpMZbh{width:100%;height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px 0 28px;border:1px solid rgba(0,0,0,0.15)}.title--tp251JEp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar--aQsOJ8rv{display:flex;align-items:center;gap:8px}.body--KvpRjkhv{flex:1;width:100%;min-height:0;overflow-y:auto}.markdown--CmPqEPJK{margin:0 auto;padding:36px;max-width:800px}.loading--MekXOCp8{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:var(--text-color-secondary)}.error--SkRwiReO{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding-bottom:20%;display:flex;flex-direction:column;align-items:center;color:#8c8c8c}.error--SkRwiReO eo-button{margin:0 14px}.embed--vYmQk5XW{display:block}.image--hQpy_1OM{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image--hQpy_1OM img{max-width:100%;max-height:100%;object-fit:contain}",""]),i.locals={preview:"preview--F7764WOO",header:"header--EVmpMZbh",title:"title--tp251JEp",toolbar:"toolbar--aQsOJ8rv",body:"body--KvpRjkhv",markdown:"markdown--CmPqEPJK",loading:"loading--MekXOCp8",error:"error--SkRwiReO",embed:"embed--vYmQk5XW",image:"image--hQpy_1OM"};const l=i},38717:(e,t,n)=>{n.d(t,{d:()=>_});var a=n(18769),r=n.n(a),o=n(53373),i=n.n(o),l=n(67177),s=n(30672),c=n(72591),d=n.n(c),p=n(1740),u=n.n(p),m=n(88128),f=n.n(m),g=n(30855),h=n.n(g),v=n(93051),b=n.n(v),x=n(73656),w=n.n(x),y=n(38706),k={};k.styleTagTransform=w(),k.setAttributes=h(),k.insert=f().bind(null,"head"),k.domAPI=u(),k.insertStyleElement=b(),d()(y.A,k);const E=y.A&&y.A.locals?y.A.locals:void 0;var A=n(36903),I=n(29386),N=n(84769),T=n(40177),C=n(60136);const S=n.p+"images/28ac62e6.png";var F=n(5987),j=n(97887),P=n(86767),L=n(76720);function _(e){let{file:t,fromModal:n}=e;const{setActiveFile:o}=(0,a.useContext)(L.j),{bytes:l,uri:c,mimeType:d,name:p}=t,u=d||(0,C.xf)(p),[m,f]=(0,a.useState)("loading"),[g,h]=(0,a.useState)(),v="text/markdown"===u||"text/x-markdown"===u,b="application/pdf"===u,x=u.startsWith("image/");(0,a.useEffect)((()=>{if(f("loading"),v||b||x){if(l)return h(v?atob(l):`data:application/pdf;base64,${l}`),void f("loaded");if(c){let e,t=!1;return(async()=>{try{const n=await fetch((0,j.V)(c));if(!n.ok)throw new Error(`Failed to fetch file: ${n.statusText}`);let a;if(v)a=await n.text();else{const t=await n.blob();e=a=URL.createObjectURL(t)}if(t)return;h(a),f("loaded")}catch(e){console.error("Error fetching file:",e),f("error")}})(),()=>{t=!0,e&&URL.revokeObjectURL(e)}}}else f("error")}),[l,x,v,b,c]);const w=(0,a.useCallback)((()=>{(0,F.P)(t)}),[t]);return r().createElement("div",{className:E.preview,style:n?{zIndex:1e3}:{}},r().createElement("div",{className:E.header},r().createElement("div",{className:E.title},t.name||(0,N.t)(N.K.UNTITLED)),r().createElement("div",{className:E.toolbar},r().createElement(s.Py,{icon:T.vD,onClick:()=>{w()}}),r().createElement("div",{className:P.A.divider}),r().createElement(s.Py,{icon:T.LQ,onClick:()=>{o(null)}}))),r().createElement("div",{className:E.body},"loading"===m?r().createElement("div",{className:E.loading},r().createElement(s.Bj,T.Xc)):"error"===m?r().createElement("div",{className:E.error},r().createElement("img",{src:S,alt:"Unpreviewable",width:591,height:249}),r().createElement("p",null,(0,N.t)(N.K.FILE_PREVIEW_UNPREVIEWABLE_TIP_PREFIX),r().createElement(s.Gx,{themeVariant:"elevo",type:"primary",onClick:w},(0,N.t)(N.K.DOWNLOAD)),(0,N.t)(N.K.FILE_PREVIEW_UNPREVIEWABLE_TIP_SUFFIX))):x?r().createElement("div",{className:E.image},r().createElement("img",{src:g,alt:p})):b?r().createElement("embed",{className:E.embed,src:g,type:u,title:p,width:"100%",height:"100%"}):r().createElement("div",{className:i()(E.markdown,A.A.markdown)},r().createElement(I.w,{content:g}))))}(0,l.initializeI18n)(N.NS,N.I)},40177:(e,t,n)=>{n.d(t,{$g:()=>c,LQ:()=>i,QB:()=>a,Rq:()=>s,T3:()=>f,X4:()=>r,Xc:()=>l,Z5:()=>o,ae:()=>u,ju:()=>p,mJ:()=>d,vD:()=>m});const a=["completed","failed","canceled","terminated"],r=[...a,"paused"],o=[...r,"input-required"],i={lib:"lucide",icon:"x"},l={lib:"antd",icon:"loading-3-quarters",spinning:!0},s={lib:"lucide",icon:"network"},c={lib:"lucide",icon:"messages-square"},d={lib:"lucide",icon:"message-square"},p={lib:"lucide",icon:"external-link"},u={lib:"lucide",icon:"chevron-up"},m={lib:"antd",icon:"download"},f={lib:"fa",prefix:"far",icon:"circle-stop"}},42854:(e,t,n)=>{n.d(t,{H:()=>F});var a=n(89575),r=n(18769),o=n.n(r),i=n(41030),l=n(60128),s=n(40410),c=n(72591),d=n.n(c),p=n(1740),u=n.n(p),m=n(88128),f=n.n(m),g=n(30855),h=n.n(g),v=n(93051),b=n.n(v),x=n(73656),w=n.n(x),y=n(56819),k={};k.styleTagTransform=w(),k.setAttributes=h(),k.insert=f().bind(null,"head"),k.domAPI=u(),k.insertStyleElement=b(),d()(y.A,k);const E=y.A&&y.A.locals?y.A.locals:void 0;var A=n(23241),I=n(30672),N=n(40177);const T=6,C=2,S="__builtin_fn_stringify";function F(e){let{objectId:t,detail:n,outputSchema:c}=e;const d=(0,r.useMemo)((()=>(0,i.uniqueId)()),[]),p=(0,r.useRef)(null),u=(0,r.useRef)(null);(0,r.useEffect)((()=>{const e=p.current;if(!e)return;const t=(0,A.d)(d),n=(0,l.unstable_createRoot)(e,{portal:t,supportsUseChildren:!0});return u.current=n,()=>{n.unmount(),t.remove(),u.current=null}}),[d]);const[m,f]=(0,r.useState)(!0);return(0,r.useEffect)((()=>{let e=!1;return(async()=>{f(!0);try{var t;const{bricks:a,context:r}=await async function(e,t,n,a){var r;let o,l;if("string"==typeof n)try{o=JSON.parse(n)}catch(e){console.error("Failed to parse outputSchema as JSON",e)}else o=n;const c=[],d=[{name:S,value:_}];function p(e,t,n,r,o){var l;const s=O(t),m=s.length>0?s[0][0]:null,f=L(`modal__${r}`),g=L(`context__${r}`);o&&d.push({name:g});const h={brick:"eo-modal",portal:!0,properties:{dataset:{modalId:f},width:"800px",themeVariant:"elevo",modalTitle:n,hideCancelButton:!0,maskClosable:!0,keyboard:!0}};c.push(h);const v=[],b=[];for(const[e,t]of s){let n;"array"===t.type&&"object"===t.items.type?(n=`[${e}]`,b.push({...p("DATA.cellData",t.items,t.description||(0,i.upperFirst)(e),`${r}__${e}`,!0),slot:n})):"object"===t.type&&(n=`[${e}]`,b.push({...u("DATA.cellData",t,t.description||(0,i.upperFirst)(e),`${r}__${e}`,!0),slot:n})),v.push({key:e,dataIndex:e,title:t.description||(0,i.upperFirst)(e),useChildren:n})}h.children=[{brick:"eo-next-table",properties:{dataSource:o?`<%= { list: CTX.${g} } %>`:`<% { list: (${e}) } %>`,columns:v,themeVariant:"elevo",pagination:!1,bordered:!0},children:b}];const x=[...o?[{action:"context.replace",args:[{name:g,value:`<% ${e} %>`}]}]:[],{target:`[data-root-id="${a}"] [data-modal-id="${f}"]`,method:"open"}];return{brick:"span",if:`<% !!(${e}) %>`,properties:{style:{display:"inline-flex",alignItems:"center",gap:"0.5em"}},children:[{brick:":forEach",dataSource:`<% (${e}).slice(0, ${C}) %>`,children:[{brick:"eo-tag",properties:{textContent:`<% CTX.${S}(ITEM, ${JSON.stringify(m)}, ${JSON.stringify(null===(l=s[0])||void 0===l?void 0:l[1].type)}) %>`,outline:!0,style:{cursor:"pointer"}},events:{click:x}}]},{brick:"eo-link",if:`<% (${e}).length > ${C} %>`,properties:{textContent:`<% \`+\${(${e}).length - ${C}}\` %>`},events:{click:x}}]}}function u(e,t,n,r,o){var l;const s=O(t),p=s.length>0?s[0][0]:null,u=L(`modal__${r}`),m=L(`context__${r}`);return o&&d.push({name:m}),c.push({brick:"eo-modal",portal:!0,properties:{dataset:{modalId:u},themeVariant:"elevo",modalTitle:n,hideCancelButton:!0,maskClosable:!0,keyboard:!0},children:[{brick:"eo-descriptions",properties:{themeVariant:"elevo",column:1,dataSource:o?`<%= CTX.${m} %>`:`<% ${e} %> `,list:s.map((e=>{let[t,n]=e;return{label:n.description||(0,i.upperFirst)(t),field:t}}))}}]}),{brick:"span",if:`<% !!(${e}) %>`,properties:{style:{display:"inline-flex",alignItems:"center",gap:"0.5em"}},children:[{brick:"eo-tag",properties:{textContent:`<% CTX.${S}(${e}, ${JSON.stringify(p)}, ${JSON.stringify(null===(l=s[0])||void 0===l?void 0:l[1].type)}) %>`,outline:!0,style:{cursor:"pointer"}},events:{click:[...o?[{action:"context.replace",args:[{name:m,value:`<% ${e} %>`}]}]:[],{target:`[data-root-id="${a}"] [data-modal-id="${u}"]`,method:"open"}]}}]}}return l="object"===(null===(r=o)||void 0===r?void 0:r.type)?Object.entries(o.properties).map((t=>{let[n,a]=t;const{description:r,type:o}=a,l=r||(0,i.upperFirst)(n);if(P(e,n))return{label:l,text:""};if("array"===o&&Array.isArray(e[n])){const{items:t}=a;if("object"===(null==t?void 0:t.type)){const a=L(`context__${n}`);return d.push({name:a,value:e[n]}),{label:l,useBrick:p(`CTX.${a}`,t,l,n)}}if(!j(null==t?void 0:t.type))return{label:l,text:e[n].join(", ")}}if("object"===o&&(0,s.isObject)(e[n])){const t=L(`context__${n}`);return d.push({name:t,value:e[n]}),{label:l,useBrick:u(`CTX.${t}`,a,l,n)}}return j(o)?{label:l,text:JSON.stringify(e[n],null,2)}:{label:l,field:n}})):Object.keys(e).map((e=>({label:(0,i.upperFirst)(e),field:e}))),{bricks:[{brick:"eo-descriptions",properties:{themeVariant:"elevo",column:l.length>T?2:1,dataSource:e,list:l}},...c],context:d}}(n,0,c,d);if(e)return;await(null===(t=u.current)||void 0===t?void 0:t.render(a,{context:r}))}catch(e){console.error("Failed to render view:",e)}e||f(!1)})(),()=>{e=!0}}),[n,t,c,d]),o().createElement("div",{className:E.container},m&&o().createElement(I.Bj,(0,a.A)({className:E.loading},N.Xc)),o().createElement("div",{"data-root-id":d,ref:p}))}function j(e){return!e||"object"===e||"array"===e}function P(e,t){return!(0,s.hasOwnProperty)(e,t)||null==e[t]||""===e[t]||Array.isArray(e[t])&&0===e[t].length}function L(e){return e.replace(/[^a-zA-Z0-9_]+/g,"_")}function _(e,t,n){if(null===t||P(e,t))return"";const a=e[t];return j(n)&&(0,s.isObject)(a)?JSON.stringify(a,null,2):String(a)}function O(e){var t;const n=Object.entries(e.properties);if(null===(t=e.required)||void 0===t||!t.length)return n;const a=Object.keys(e.properties);return(0,i.orderBy)(n,[t=>{let[n]=t;const r=e.required.indexOf(n);return-1===r?e.required.length+a.indexOf(n):r}],["asc"])}},43100:(e,t,n)=>{n.d(t,{f:()=>i});var a=n(47695);let r,o;function i(){return r||(r=(async()=>{const e=(0,a.LV)((o||(o=new Worker(new URL(n.p+n.u(6450),n.b))),o));return await new e})()),r}},47760:(e,t,n)=>{n.d(t,{$:()=>C});var a=n(18769),r=n.n(a),o=n(53373),i=n.n(o),l=n(72591),s=n.n(l),c=n(1740),d=n.n(c),p=n(88128),u=n.n(p),m=n(30855),f=n.n(m),g=n(93051),h=n.n(g),v=n(73656),b=n.n(v),x=n(95996),w={};w.styleTagTransform=b(),w.setAttributes=f(),w.insert=u().bind(null,"head"),w.domAPI=d(),w.insertStyleElement=h(),s()(x.A,w);const y=x.A&&x.A.locals?x.A.locals:void 0;var k=n(84769),E=n(60136),A=n(97887),I=n(76720),N=n(30672),T=n(40177);function C(e){let{files:t,large:n,ui:o}=e;const{setActiveFile:l,setActiveImages:s}=(0,a.useContext)(I.j),c=(0,a.useMemo)((()=>t.map((e=>{const[t,n]=(0,E.NL)(e.mimeType,e.name);return{file:e,displayType:t,icon:n}}))),[t]),d=c.filter((e=>"Image"===e.displayType&&e.file.uri)).map((e=>e.file)),p=d.length===t.length,u=p?8:6,m=t.length>u,[f,g]=(0,a.useState)(!1),h=f?c:c.slice(0,u);return r().createElement(r().Fragment,null,r().createElement("ul",{className:i()(y.files,{[y.large]:n,[y.images]:p,[y.single]:1===c.length,[y.chat]:"chat"===o})},h.map(((e,n)=>{let{file:a,displayType:o,icon:i}=e;return r().createElement("li",{key:n},r().createElement("a",{className:p?y.image:y.file,onClick:()=>{"Image"===o&&a.uri?s({files:d,file:a}):l(a)}},p?r().createElement(r().Fragment,null,r().createElement("img",{src:(0,A.V)(a.uri),fetchPriority:"low"}),m&&n===u-1&&r().createElement(r().Fragment,null,r().createElement("div",{className:y.mask}),r().createElement("div",{className:y.overlay},"+"+(t.length-u+1)))):r().createElement(r().Fragment,null,r().createElement("img",{className:y.icon,src:i,width:26,height:32}),r().createElement("div",{className:y.content},r().createElement("div",{className:y.name},a.name||(0,k.t)(k.K.UNTITLED)),r().createElement("div",{className:y.metadata},`${o}${a.size?` · ${(0,E.v7)(a.size)}`:""}`)))))}))),m&&!p&&r().createElement("button",{className:i()(y.expand,{[y.collapsed]:!f}),onClick:()=>g((e=>!e))},r().createElement(N.Bj,T.ae),f?(0,k.t)(k.K.COLLAPSE):(0,k.t)(k.K.SHOW_ALL_FILES)))}},50045:(e,t,n)=>{function a(e,t){const n=new Map,a=new Map,r=[],o=new Map;for(const a of e)n.set(a.id,a),a.parent&&a.id!==t&&o.set(a.parent,a.id);for(const n of e){var i;for(const e of null!==(l=n.upstream)&&void 0!==l?l:[]){var l;let t=a.get(e);t||a.set(e,t=[]),t.push(n.id)}(t?n.id!==t:n.parent||null!==(i=n.upstream)&&void 0!==i&&i.length)||r.push(n.id)}const s=[],c=new Set,d=[...r];for(;d.length>0;){const e=d.shift();if(c.has(e))continue;c.add(e),s.push(e);const t=a.get(e);null!=t&&t.length&&d.push(...t)}return{list:s,map:n,childMap:o}}function r(e,t,n){const{flowMap:r,activityMap:o,skipActivitySubTasks:i,enablePlan:l,rootTaskId:s,expandAskUser:c}=n||{},d=function(e,t){const{list:n,map:r,childMap:o}=a(e,t),i=new Map([...r.entries()].map((e=>{let[t,n]=e;return[t,a(n.jobs)]}))),l=e=>{const t=r.get(e),{list:n,map:a}=i.get(e);return{task:t,children:n.map((e=>{const t=a.get(e),n=o.get(t.id);return n?{job:t,subTask:l(n)}:{job:t}}))}};return n.map((e=>l(e)))}(e,s),p=[],u=new Map,m=new Map;let f=null;const g=(e,n)=>{if(l&&e.task.plan){p.push({type:"plan",task:e.task});for(const t of e.task.plan)t.jobId&&m.set(t.jobId,t);return}const a=null==r?void 0:r.get(e.task.id),s=null==o?void 0:o.get(e.task.id);s&&p.push({type:"activity",activity:s.activity,flow:s.flow,task:e.task});const d=s&&i;for(const{job:t,subTask:r}of e.children){var u;d?("completed"===t.state&&null!==(u=t.messages)&&void 0!==u&&u.length&&t.messages.every((e=>"user"===e.role))||t.hil)&&p.push({type:"job",job:t,level:n,fromSkippedSubTask:!0}):"askUser"===t.type?r&&(c?g(r,n+1):p.push({type:"askUser",job:t,task:null==r?void 0:r.task})):"serviceFlow"===t.type?a&&p.push({type:"flow",flow:a,task:e.task}):r?g(r,n+1):p.push({type:"job",job:t,level:n})}const f=t.filter((t=>t.taskId===e.task.id&&t.error));for(const e of f)p.push({type:"error",error:e.error})},h=(e,t)=>{for(const{job:n,subTask:a}of e.children)u.set(n.id,n),a&&(h(a,n),"askUser"===n.type&&(f={task:a.task,parentJob:t,parentTask:e.task}))};for(const e of d)g(e,0),h(e);for(const e of t)!e.taskId&&e.error&&p.push({type:"error",error:e.error});return{chunks:p,jobMap:u,planMap:m,activeAskUser:f}}n.d(t,{a:()=>r})},52208:(e,t,n)=>{n.d(t,{N:()=>R,L:()=>V});var a=n(18769),r=n(31085),o=n(51309),i=n(81735),l=n(35532),s=n(36380),c=n(97545),d=n(48302),p=n(45619),u=n(74269),m=n(62142),f=n(56948),g=n(64149),h=n(29755);const v={json:()=>n.e(4190).then(n.bind(n,64190)),javascript:()=>n.e(5065).then(n.bind(n,15065)),js:()=>n.e(5065).then(n.bind(n,15065)),typescript:()=>n.e(2449).then(n.bind(n,72449)),ts:()=>n.e(2449).then(n.bind(n,72449)),html:()=>Promise.all([n.e(5065),n.e(2593),n.e(4735)]).then(n.bind(n,74735)),"html-derivative":()=>Promise.all([n.e(5065),n.e(2593),n.e(4735),n.e(9251)]).then(n.bind(n,9251)),xml:()=>n.e(8263).then(n.bind(n,28263)),css:()=>n.e(2593).then(n.bind(n,62593)),markdown:()=>n.e(8311).then(n.bind(n,88311)),md:()=>n.e(8311).then(n.bind(n,88311)),mermaid:()=>n.e(8757).then(n.bind(n,58757)),mmd:()=>n.e(8757).then(n.bind(n,58757)),jsx:()=>n.e(1136).then(n.bind(n,58755)),tsx:()=>n.e(4609).then(n.bind(n,54609)),shellscript:()=>n.e(1215).then(n.bind(n,1215)),bash:()=>n.e(1215).then(n.bind(n,1215)),sh:()=>n.e(1215).then(n.bind(n,1215)),shell:()=>n.e(1215).then(n.bind(n,1215)),zsh:()=>n.e(1215).then(n.bind(n,1215)),python:()=>n.e(2510).then(n.bind(n,82510)),py:()=>n.e(2510).then(n.bind(n,82510)),go:()=>n.e(5498).then(n.bind(n,75498)),sql:()=>n.e(1120).then(n.bind(n,21120)),yaml:()=>n.e(7729).then(n.bind(n,7729))},b={"light-plus":m.A,"dark-plus":f.A},x=(0,g.q6)({langs:v,themes:b,engine:()=>(0,h.Mk)(n.e(5032).then(n.bind(n,75032)))}),{codeToHtml:w,codeToHast:y,codeToTokensBase:k,codeToTokens:E,codeToTokensWithThemes:A,getSingletonHighlighter:I,getLastGrammarState:N}=(0,g.CZ)(x,{guessEmbeddedLanguages(e,t){if("markdown"===t||"md"===t)return["mermaid"]}});var T=n(74650),C=n(96271);function S(e){const t=e.properties.className||[];for(const e of t)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}let F;let j=0;const P=new DOMParser,L=new XMLSerializer;function _(){return async e=>{const t=[];(0,u.YR)(e,"element",((e,a,r)=>{r&&"element"===r.type&&"pre"===r.tagName&&"code"===e.tagName&&"mermaid"===S(e)&&t.push((async()=>{const t="mermaid-"+j++;let o;try{const a=await(F||(F=async function(){const e=(await Promise.all([n.e(8324),n.e(7367)]).then(n.bind(n,67367))).default;return e.initialize({startOnLoad:!1,theme:"base",themeVariables:{fontSize:"14px",lineColor:"#979797",primaryColor:"#DCD2F3",primaryBorderColor:"#0000001A"}}),e}(),F));o=(await a.render(t,(0,T.d)(e))).svg}catch(e){var i;return console.error("Error rendering mermaid diagram:",e),void(null===(i=document.getElementById(t))||void 0===i||i.remove())}const l=P.parseFromString(o,"text/html"),s=l.querySelector("svg"),c=l.createElementNS("http://www.w3.org/2000/svg","defs");c.innerHTML=`<linearGradient id="linear-gradient-${t}" x1="0%" y1="0%" x2="0%" y2="100%">\n <stop offset="0%" stop-color="#F0EBFA" />\n <stop offset="75%" stop-color="#DED4F4" />\n <stop offset="100%" stop-color="#C5C7FA" />\n</linearGradient>`,s.prepend(c);const d=l.createElementNS("http://www.w3.org/2000/svg","style");d.textContent=`\n#${t} .node rect,\n#${t} .node circle,\n#${t} .node ellipse,\n#${t} .node polygon,\n#${t} .node path {\n fill: url(#linear-gradient-${t});\n}\n#${t} .node rect {\n rx: 4;\n ry: 4;\n}\n#${t} .labelBkg {\n background-color: #f5f8ff;\n}\n#${t} .edgeLabel,\n#${t} .edgeLabel p {\n background-color: transparent;\n}\n#${t} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`,s.appendChild(d);const p=L.serializeToString(s),u=(0,C.f)(p,{fragment:!0}).children;r.children.splice(a,1,...u),r.properties.className=(r.properties.className||[]).concat("mermaid")})())})),await Promise.all(t)}}const O={Fragment:r.Fragment,jsx:r.jsx,jsxs:r.jsxs};async function V(e){await I({themes:[e]})}function $(){return e=>{(0,u.YR)(e,"element",((e,t,n)=>{if(!n||"element"!==n.type||"pre"!==n.tagName||"code"!==e.tagName)return;const a=S(e);a&&!Object.prototype.hasOwnProperty.call(v,a)&&(e.properties.className=e.properties.className.map((e=>e.startsWith("language-")?"language-text":e)))}))}}function R(e){var t;let{content:n,components:r,shiki:u,externalLinks:m}=e;const[f,g]=(0,a.useState)(null),h=null!==(t=null==u?void 0:u.theme)&&void 0!==t?t:"dark-plus";return(0,a.useEffect)((()=>{let e=!1;return(async()=>{try{const t=await I({themes:[h]});if(e)return;const a=await(0,o.l)().use(i.A).use(l.A).use(s.A).use(c.A,m).use(_).use($).use(p.A,t,{theme:h,lazy:!0,defaultLanguage:"text"}).use(d.A,{...O,passNode:!0,components:r}).process(n);e||g(a.result)}catch(t){e||(console.error("Convert markdown failed:",t),g(a.createElement("div",{style:{color:"var(--color-error)"}},"Convert markdown failed: ",String(t))))}})(),()=>{e=!0}}),[r,n,m,h]),f}},56819:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".container--YostHfxu{background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter);border-radius:var(--elevo-border-radius);padding:16px}.container--YostHfxu:not(:first-child){margin-top:10px}ai-portal\\.chat-stream .container--YostHfxu{background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px}.loading--FzSrGTPm{position:absolute;top:calc(50% - 7px);left:calc(50% - 7px)}",""]),i.locals={container:"container--YostHfxu",loading:"loading--FzSrGTPm"};const l=i},60136:(e,t,n)=>{n.d(t,{v7:()=>p,NL:()=>u,xf:()=>m});var a=n(61919);const r=n.p+"images/62542537.png",o=n.p+"images/94d7a053.png",i=n.p+"images/0e7e6764.png",l=n.p+"images/7944ebaf.png",s=n.p+"images/c7ec12fe.png",c=n.p+"images/3316492a.png",d=new Map([["md","text/markdown"],["pdf","application/pdf"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["txt","text/plain"],["csv","text/csv"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["png","image/png"],["gif","image/gif"],["bmp","image/bmp"],["webp","image/webp"],["svg","image/svg+xml"]]);function p(e){const[t,n]=a.pipes.unitFormat(e,"bytes",1),r=+t;return`${r>100?Math.round(r):r} ${n}`}function u(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",c];switch(n){case"text/markdown":case"text/x-markdown":return["Markdown",r];case"application/pdf":return["PDF",o];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",i];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",s];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",l]}return n.startsWith("text/")?["Text",r]:["File",c]}function m(e){var t;let n="";const a=null==e?void 0:e.match(/\.([^.]+)$/);return a&&(n=a[1].toLowerCase()),null!==(t=d.get(n))&&void 0!==t?t:"unknown"}},65549:(e,t,n)=>{n.d(t,{Q:()=>r});var a=n(41030);function r(e,t){return null==e?void 0:e.replace(/{{(.*?)}}/g,((e,n)=>(0,a.get)(t,n.trim())))}},67101:(e,t,n)=>{n.d(t,{u:()=>x});var a=n(18769),r=n(40410),o=n(60128),i=n(41030),l=n(75321);function s(e,t,n,a){let r=null!=e?e:[];for(const e of null!=t?t:[]){var o,s;const t=null!==(o=null===(s=r)||void 0===s?void 0:s.findIndex((t=>t.id===e.id)))&&void 0!==o?o:-1,{messages:x,toolCall:w}=e;if("string"==typeof(null==w?void 0:w.arguments)){w.originalArguments=w.arguments;try{w.arguments=JSON.parse(w.arguments)}catch(e){w.arguments={},w.argumentsParseFailed=!0,w.argumentsParseError=e}}if(-1===t){var d;const t={...e};if(void 0!==a&&(t.aiEmployeeId=a),"create_view"===(null===(d=t.toolCall)||void 0===d?void 0:d.name)&&"completed"===t.state){const e=p(x,n);e&&(t.generatedView=e)}r=Array.isArray(x)&&x.length>0?[...r,{...t,messages:c(x)}]:[...r,t]}else{var f,g,h,v;const o=r[t],s=(0,i.pick)(e,["id","upstream","parent","state","instruction","toolCall","isError","hidden","startTime","endTime","requestHumanAction","humanAction","username","cmd","mentionedAiEmployeeId","hil","summary"]);var b;if(void 0!==a&&(s.aiEmployeeId=a),Array.isArray(x)&&x.length>0&&(s.messages=c([...null!==(b=o.messages)&&void 0!==b?b:[],...x])),!o.generatedView&&["create_view"].includes(null!==(f=null===(g=s.toolCall)||void 0===g?void 0:g.name)&&void 0!==f?f:null===(h=o.toolCall)||void 0===h?void 0:h.name)&&"completed"===(null!==(v=s.state)&&void 0!==v?v:o.state)){const e=p(x,n);e&&(s.generatedView=e)}if(!o.generatedView&&!s.generatedView){const e=u(x);e&&(e.withContexts={RESPONSE:m(s.messages)},e.asyncConstructedView=(0,l.e)(e,n),s.generatedView=e)}(0,i.isMatch)(o,s)||(r=[...r.slice(0,t),{...o,...s},...r.slice(t+1)])}}return r}function c(e){const t=[];let n;for(const a of e){if(n&&n===a.role){const e=t[t.length-1];e.parts=[...e.parts,...a.parts]}else t.push({...a});n=a.role}for(const e of t)e.parts=d(e.parts);return t}function d(e){const t=[];let n,a;for(const i of e){var r,o;"text"===n&&"text"===i.type?t[t.length-1].text+=i.text:"stream"===a&&"data"===i.type&&"stream"===(null===(r=i.data)||void 0===r?void 0:r.type)?t[t.length-1].data.message+=i.data.message:t.push({...i}),n=i.type,a="data"===i.type?null===(o=i.data)||void 0===o?void 0:o.type:void 0}return t}function p(e,t){if(e)for(const n of e)if("tool"===n.role)for(const e of n.parts)if("text"===e.type)try{const n=JSON.parse(e.text);return n.asyncConstructedView=(0,l.e)(n,t),n}catch{}}function u(e){if(e)for(const n of e)if("tool"===n.role)for(const e of n.parts){var t;if("data"===e.type&&"static_data_view"===(null===(t=e.data)||void 0===t?void 0:t.type))return{viewId:e.data.viewId,code:e.data.code,from:e.data.from,isStaticData:!0}}}function m(e){for(const t of e)if("tool"===t.role)for(const e of t.parts)if("text"===e.type)try{return JSON.parse(e.text)}catch(e){console.error("Failed to parse static data response as JSON:",e)}return null}function f(e,t,n){if(Array.isArray(n))return n;if(!Array.isArray(t.spec))return null!=e?e:[];const a=e?[...e]:[];for(const e of t.spec){const t=a.findIndex((t=>t.name===e.name));if(-1===t){var r;const t={...e};null!==(r=t.serviceFlowActivities)&&void 0!==r||(t.serviceFlowActivities=[]),a.push(t)}else{const n=g(a[t].serviceFlowActivities,e.serviceFlowActivities);a[t]={...a[t],...e,serviceFlowActivities:n}}}return a}function g(e,t){let n=null!=e?e:[];if(!Array.isArray(t)||0===t.length)return n;for(const e of t){const t=n.findIndex((t=>t.taskId?t.taskId===e.taskId:t.name===e.name));n=-1===t?[...n,e]:[...n.slice(0,t),{...n[t],...e},...n.slice(t+1)]}return n}const h=(v={conversation:(e,t)=>{switch(t.type){case"sse":{const n=(0,i.pick)(t.payload,["id","state","title","startTime","endTime","projectId"]);return n.mode=t.mode,e&&(0,i.isMatch)(e,n)?e:{...e,...n}}case"reset":return null;case"started":return e?{...e,finished:!1}:e;case"finished":return e?{...e,finished:!0}:e}return e},tasks:(e,t)=>{switch(t.type){case"sse":{const a=t.payload.tasks;let r=e;if(!Array.isArray(a)||0===a.length)return e;for(const e of a){var n;const a=(0,i.pick)(e,["id","upstream","parent","state","plan","startTime","endTime","jobs","aiEmployeeId"]),o=r.findIndex((e=>e.id===a.id)),l=r[o];a.jobs=s(null==l?void 0:l.jobs,a.jobs,t.workspace,null!==(n=a.aiEmployeeId)&&void 0!==n?n:null==l?void 0:l.aiEmployeeId),-1===o?r=[...r,a]:(0,i.isMatch)(l,a)||(r=[...r.slice(0,o),{...l,...a},...r.slice(o+1)])}return r}case"reset":return 0===e.length?e:[]}return e},errors:(e,t)=>{switch(t.type){case"sse":{const{error:n,tasks:a}=t.payload,r=e[e.length-1];let o;return o=null!=a&&a.length?a[a.length-1].id:null==r?void 0:r.taskId,"string"==typeof n&&n?e.slice(0,-1).concat({taskId:o,error:n},{taskId:o}):r?r.error?e.concat({taskId:o}):r.taskId!==o?e.slice(0,-1).concat({taskId:o}):e:o?[{taskId:o}]:e}case"reset":return 0===e.length?e:[]}return e},serviceFlows:(e,t)=>{switch(t.type){case"sse":{const n=t.payload.serviceFlows;let a=e;if(!Array.isArray(n)||0===n.length)return e;for(const e of n){const t=(0,i.pick)(e,["taskId","flowInstanceId","name","spec","space"]),n=a.findIndex((e=>e.taskId===t.taskId)),r=a[n];t.spec=f(null==r?void 0:r.spec,t,e.fullSpec),-1===n?a=[...a,t]:(0,i.isMatch)(r,t)||(a=[...a.slice(0,n),{...r,...t},...a.slice(n+1)])}return a}case"reset":return 0===e.length?e:[]}return e}},(e,t)=>Object.fromEntries(Object.entries(v).map((n=>{let[a,r]=n;return[a,r(e[a],t)]}))));var v;const b=500;function x(e,t,n,i,l){const[{conversation:s,tasks:c,serviceFlows:d,errors:p},u]=(0,a.useReducer)(h,null,(()=>({conversation:null,tasks:[],serviceFlows:[],errors:[]}))),m=(0,a.useRef)(),f=(0,a.useRef)([]),g=(0,a.useRef)(n),v=(0,a.useRef)(1e3*(null!=i?i:2)),x=(0,a.useRef)(null),w=(0,a.useCallback)((()=>{g.current=!1,x.current&&(x.current(),x.current=null)}),[]),y=(0,a.useCallback)((async()=>{if(!e)return;g.current=!0,u({type:"reset"});let t,n=!0;for(const a of f.current){if(g.current){let e=v.current;a.time&&t&&(e=Math.min(Math.max(b,1e3*(a.time-t)),e)),t=a.time,n||(await new Promise((t=>{x.current=t,setTimeout(t,e)})),x.current=null)}u({type:"sse",mode:"resume",payload:a,workspace:e}),n=!1}u({type:"finished"})}),[e]);return(0,a.useEffect)((()=>{if(!e)return;u({type:"reset"}),f.current=[],m.current=void 0;let n,a=!1,i=!1;const s=async(t,s,c)=>{if(i)return;i=!0,n=new AbortController;const d=null!==t||s?"new":"resume";u({type:"started"});try{const p=await("resume"===d?(0,r.createSSEStream)(`${(0,o.getBasePath)()}api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations/${e}/stream`,{signal:n.signal}):(0,r.createSSEStream)(`${(0,o.getBasePath)()}api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations/${e}/messages`,{signal:n.signal,method:"POST",body:JSON.stringify(s?{action:s}:{content:t,...c}),headers:{"Content-Type":"application/json"}})),m=await p;let h,w=!0;for await(const t of m){if(a)return void(i=!1);if(g.current){let e=v.current;t.time&&h&&(e=Math.min(Math.max(b,1e3*(t.time-h)),e)),h=t.time,w||(await new Promise((t=>{x.current=t,setTimeout(t,e)})),x.current=null)}f.current.push(t),u({type:"sse",mode:d,payload:t,workspace:e}),null==l||l(t),w=!1}}catch(e){console.error("sse failed",e),(0,o.handleHttpError)(e)}finally{i=!1,u({type:"finished"})}};return m.current=async(e,t,n)=>{s(e,t,n)},(null==t?void 0:t.conversationId)===e?s(t.content,void 0,{cmd:t.cmd,files:t.files,aiEmployeeId:t.aiEmployeeId,agentId:t.agentId,spaceId:t.spaceId}):s(null),()=>{var e;a=!0,null===(e=n)||void 0===e||e.abort()}}),[e,t]),{conversation:s,tasks:c,serviceFlows:d,errors:p,humanInputRef:m,skipToResults:w,watchAgain:y}}},69493:(e,t,n)=>{n.d(t,{A:()=>v});var a=n(72591),r=n.n(a),o=n(1740),i=n.n(o),l=n(88128),s=n.n(l),c=n(30855),d=n.n(c),p=n(93051),u=n.n(p),m=n(73656),f=n.n(m),g=n(34663),h={};h.styleTagTransform=f(),h.setAttributes=d(),h.insert=s().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=u(),r()(g.A,h);const v=g.A&&g.A.locals?g.A.locals:void 0},75321:(e,t,n)=>{n.d(t,{e:()=>r});var a=n(43100);async function r(e,t){try{const n=await(0,a.f)();return{...await n.parseView(e.code,{workspace:t,withContexts:e.withContexts?Object.keys(e.withContexts):void 0}),viewId:e.viewId,withContexts:e.withContexts}}catch(e){return console.error("Failed to parse generated view:",e),null}}},76720:(e,t,n)=>{n.d(t,{j:()=>a});const a=(0,n(18769).createContext)({tasks:[],errors:[],humanInput:()=>{},onShare:()=>{},onTerminate:()=>{},activeExpandedViewJobId:null,setActiveExpandedViewJobId:()=>{},activeDetail:null,setActiveDetail:()=>{},subActiveDetail:null,setSubActiveDetail:()=>{},submittingFeedback:!1,submittedFeedback:!1,onSubmitFeedback:()=>{},setShowFeedback:()=>{},activeFile:null,setActiveFile:()=>{},activeImages:null,setActiveImages:()=>{}})},77388:(e,t,n)=>{n.d(t,{_:()=>E,u:()=>A});var a=n(18769),r=n.n(a),o=n(53373),i=n.n(o),l=n(72591),s=n.n(l),c=n(1740),d=n.n(c),p=n(88128),u=n.n(p),m=n(30855),f=n.n(m),g=n(93051),h=n.n(g),v=n(73656),b=n.n(v),x=n(82674),w={};w.styleTagTransform=b(),w.setAttributes=f(),w.insert=u().bind(null,"head"),w.domAPI=d(),w.insertStyleElement=h(),s()(x.A,w);const y=x.A&&x.A.locals?x.A.locals:void 0;var k=n(24564);function E(e){let{cmd:t,mentionedAiEmployeeId:n}=e;const[o,l]=(0,a.useState)((()=>A(t,n)));return(0,a.useEffect)((()=>{if(l(A(t,n)),!t){let e=!1;return(async()=>{const t=await(0,k.v)(n);!e&&t&&l(`@${t.name}`)})(),()=>{e=!0}}}),[t,n]),r().createElement(r().Fragment,null,r().createElement("span",{className:i()(y.command,{[y.small]:!0})},o)," ")}function A(e,t){if(e)switch(e.type){case"serviceFlowStarting":return`/start serviceflow${[e.serviceFlowStarting.flowName,e.serviceFlowStarting.spaceName].filter(Boolean).slice(0,1).map((e=>`: ${e}`)).join("")}`;case"serviceflow-start":return`/start serviceflow${[e.payload.flowName,e.payload.spaceName].filter(Boolean).slice(0,1).map((e=>`: ${e}`)).join("")}`;case"serviceflow-edit":return`/edit serviceflow${[e.payload.flowName,e.payload.spaceName].filter(Boolean).slice(0,1).map((e=>`: ${e}`)).join("")}`;case"serviceflow-create":return`/create serviceflow${[e.payload.spaceName].filter(Boolean).slice(0,1).map((e=>`: ${e}`)).join("")}`;case"serviceObject-createOrEdit":return"/manage business object";case"serviceObjectInstance-createOrEdit":return"/manage business object instance";default:return`/${e.type}`}return`@${t}`}},80865:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".toolbar--ELlNUAti{position:absolute;display:flex;align-items:center;padding:3px 5px;-webkit-user-select:none;user-select:none;background:rgba(255,255,255,0.7);box-shadow:0px 3px 14px 0px rgba(0,0,0,0.1),0px 1px 4px 0px rgba(0,0,0,0.06);border-radius:8px;border:1px solid rgba(255,255,255,0.3)}.divider--JeH8feaX{background:rgba(0,0,0,0.15);width:1px;height:16px}.toolbar--ELlNUAti > :not(:last-child){margin-right:6px}",""]),i.locals={toolbar:"toolbar--ELlNUAti",divider:"divider--JeH8feaX"};const l=i},82674:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".command--PjYZ4uqH{display:inline-block;background:rgba(37,64,255,0.06);border-radius:8px;color:#2540ff;padding:4px 6px;line-height:22px}.small--dUc9qGKv{padding:2px 6px}",""]),i.locals={command:"command--PjYZ4uqH",small:"small--dUc9qGKv"};const l=i},83182:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".preview--sJLzdFVa{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background:#f9fafb;display:flex;flex-direction:column;align-items:center}.header--TIurJRMB{display:flex;align-items:center;justify-content:center;padding:16px 16px 80px}.body--DbDekAy2{display:flex;align-items:center;flex:1;min-height:0;width:100%;padding:0 16px}.aside--H9sLGJQ1{padding:0 16px}.aside--H9sLGJQ1 button{width:36px;height:36px;color:#595959}.content--x9hjJT92{flex:1;min-width:0;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.content--x9hjJT92 img{max-width:100%;max-height:100%;object-fit:contain}.footer--pNM7uUz2{display:flex;justify-content:center;overflow-x:auto;width:100%}.images--Aro5zeU2{list-style:none;margin:0;padding:38px 0;display:flex;align-items:center;height:154px;gap:8px}.images--Aro5zeU2 li{height:60px;width:60px;border:1px solid #e8e8e8;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden;opacity:0.5;cursor:pointer;transition:width 0.15s ease-in-out,height 0.15s ease-in-out}.images--Aro5zeU2 li.active--zWUDZJUd{opacity:1;height:78px;width:78px}.images--Aro5zeU2 li:not(.active--zWUDZJUd):hover{opacity:0.7}.images--Aro5zeU2 img{max-height:100%;max-width:100%;object-fit:contain}.close--pVovgmNU{position:absolute;top:16px;right:16px}",""]),i.locals={preview:"preview--sJLzdFVa",header:"header--TIurJRMB",body:"body--DbDekAy2",aside:"aside--H9sLGJQ1",content:"content--x9hjJT92",footer:"footer--pNM7uUz2",images:"images--Aro5zeU2",active:"active--zWUDZJUd",close:"close--pVovgmNU"};const l=i},84769:(e,t,n)=>{n.d(t,{I:()=>i,K:()=>r,NS:()=>o,t:()=>l});var a=n(67177);let r=function(e){return e.UNTITLED="UNTITLED",e.FILE_PREVIEW_UNPREVIEWABLE_TIP_PREFIX="FILE_PREVIEW_UNPREVIEWABLE_TIP_PREFIX",e.FILE_PREVIEW_UNPREVIEWABLE_TIP_SUFFIX="FILE_PREVIEW_UNPREVIEWABLE_TIP_SUFFIX",e.DOWNLOAD="DOWNLOAD",e.SHOW_ALL_FILES="SHOW_ALL_FILES",e.COLLAPSE="COLLAPSE",e}({});const o="bricks/ai-portal/FilePreview",i={en:{UNTITLED:"Untitled",FILE_PREVIEW_UNPREVIEWABLE_TIP_PREFIX:"This file is unpreviewable currently, you can",FILE_PREVIEW_UNPREVIEWABLE_TIP_SUFFIX:"and view it locally.",DOWNLOAD:"Download",SHOW_ALL_FILES:"Show all files",COLLAPSE:"Collapse"},zh:{UNTITLED:"未命名",FILE_PREVIEW_UNPREVIEWABLE_TIP_PREFIX:"该类型文件暂不支持预览,您可以",FILE_PREVIEW_UNPREVIEWABLE_TIP_SUFFIX:"查看。",DOWNLOAD:"下载",SHOW_ALL_FILES:"显示所有文件",COLLAPSE:"收起"}},l=a.i18n.getFixedT(null,o)},86011:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".view-toolbar--kVhd3X5H{display:flex;align-items:center;gap:8px}.button--f3fGXpYl{display:flex;background:none;border:none;padding:3px;cursor:pointer;color:#595959}.button-lucide--J7U9FEo_{font-size:16px;padding:2px}.button--f3fGXpYl:hover{color:var(--elevo-color-brand)}",""]),i.locals={"view-toolbar":"view-toolbar--kVhd3X5H",button:"button--f3fGXpYl","button-lucide":"button-lucide--J7U9FEo_"};const l=i},86767:(e,t,n)=>{n.d(t,{A:()=>v});var a=n(72591),r=n.n(a),o=n(1740),i=n.n(o),l=n(88128),s=n.n(l),c=n(30855),d=n.n(c),p=n(93051),u=n.n(p),m=n(73656),f=n.n(m),g=n(80865),h={};h.styleTagTransform=f(),h.setAttributes=d(),h.insert=s().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=u(),r()(g.A,h);const v=g.A&&g.A.locals?g.A.locals:void 0},86976:(e,t,n)=>{n.d(t,{y:()=>j});var a=n(18769),r=n.n(a),o=n(60128),i=n(53373),l=n.n(i),s=n(41030),c=n(73301),d=n(72591),p=n.n(d),u=n(1740),m=n.n(u),f=n(88128),g=n.n(f),h=n(30855),v=n.n(h),b=n(93051),x=n.n(b),w=n(73656),y=n.n(w),k=n(11190),E={};E.styleTagTransform=y(),E.setAttributes=v(),E.insert=g().bind(null,"head"),E.domAPI=m(),E.insertStyleElement=x(),p()(k.A,E);const A=k.A&&k.A.locals?k.A.locals:void 0;var I=n(36903),N=n(30672),T=n(23241),C=n(76720),S=n(40177),F=n(89064);function j(e){var t;let{job:n,noHeading:i,onSizeChange:d}=e;const p=(0,a.useMemo)((()=>(0,s.uniqueId)()),[]),{workspace:u,manuallyUpdatedViews:m}=(0,a.useContext)(C.j),f=(0,a.useRef)(null),g=(0,a.useRef)(null),h=null!==(t=null==m?void 0:m.get(n.id))&&void 0!==t?t:n.generatedView,[v,b]=(0,a.useState)(null),x=!!v&&!!h.viewId&&"config"!==h.from;(0,a.useEffect)((()=>{var e;b(null);let t=!1;return null===(e=h.asyncConstructedView)||void 0===e||e.then((e=>{t||b(e)})),()=>{t=!0}}),[h]),(0,a.useEffect)((()=>{const e=f.current;if(!e)return;const t=(0,T.d)(p),n=(0,o.unstable_createRoot)(e,{portal:t,supportsUseChildren:!0});return g.current=n,()=>{n.unmount(),t.remove(),g.current=null}}),[p]);const[w,y]=(0,a.useState)(!0),[k,E]=(0,a.useState)(!1);(0,a.useEffect)((()=>{if(y(!0),!v)return;let e=!1;return(async()=>{try{var t;const n=await(0,c.z)(v,{rootId:p,workspace:u,withContexts:v.withContexts});if(e)return;const{brick:a,context:r,functions:o,templates:i}=n;E(function(e){let t=!1;return P([].concat(e),(e=>{var n;if("eo-next-table"===e.brick)return t=!0,!0;if("div"===e.brick&&"dashboard"===(null===(n=e.properties)||void 0===n||null===(n=n.dataset)||void 0===n?void 0:n.component)){const n=e.children;if(Array.isArray(n)&&n.length>=7)return t=!0,!0}return!1})),t}(a)),await(null===(t=g.current)||void 0===t?void 0:t.render(a,{context:r,functions:o,templates:i}))}catch(e){console.error("Failed to render view:",e)}e||y(!1)})(),()=>{e=!0}}),[p,u,v]),(0,a.useEffect)((()=>{null==d||d(k?"large":"medium")}),[d,k]);const j=(0,a.useMemo)((()=>{var e;return null==v||null===(e=v.entry)||void 0===e||null===(e=e.defaultExport)||void 0===e?void 0:e.title}),[v]);return r().createElement(r().Fragment,null,i?null:r().createElement("div",{className:A.heading},r().createElement("div",{className:l()(A.title,{[I.A["shine-text"]]:v&&w})},v?j:r().createElement(N.Bj,S.Xc)),r().createElement(F.v,{job:n,canFeedback:x})),r().createElement("div",{"data-root-id":p,ref:f}))}function P(e,t){for(const n of e){if(t(n))break;Array.isArray(n.children)&&P(n.children,t)}}},89064:(e,t,n)=>{n.d(t,{v:()=>F});var a=n(18769),r=n.n(a),o=n(60128),i=n(67177),l=n(72591),s=n.n(l),c=n(1740),d=n.n(c),p=n(88128),u=n.n(p),m=n(30855),f=n.n(m),g=n(93051),h=n.n(g),v=n(73656),b=n.n(v),x=n(86011),w={};w.styleTagTransform=b(),w.setAttributes=f(),w.insert=u().bind(null,"head"),w.domAPI=d(),w.insertStyleElement=h(),s()(x.A,w);const y=x.A&&x.A.locals?x.A.locals:void 0;var k=n(30672);let E=function(e){return e.FULLSCREEN="FULLSCREEN",e.FEEDBACK="FEEDBACK",e.OPEN_PREVIEW="OPEN_PREVIEW",e}({});const A="bricks/ai-portal/CreatedView",I=i.i18n.getFixedT(null,A);var N=n(76720),T=n(40177),C=n(91797),S=n(65549);function F(e){var t;let{job:n,canFeedback:i}=e;const{previewUrlTemplate:l,showJsxEditor:s,setActiveExpandedViewJobId:c,setActiveJsxEditorJob:d,manuallyUpdatedViews:p,showFeedbackOnView:u,onFeedbackOnView:m,feedbackDoneViews:f}=(0,a.useContext)(N.j),g=null!==(t=null==p?void 0:p.get(n.id))&&void 0!==t?t:n.generatedView,h=(0,C.G)(g.viewId,u)||(null==f?void 0:f.has(g.viewId)),v=i&&!!g.viewId&&"config"!==g.from,b=(0,a.useCallback)((()=>{c(n.id)}),[n.id,c]);return r().createElement("div",{className:y["view-toolbar"]},s&&r().createElement("button",{className:y.button,onClick:()=>{null==d||d(n)}},r().createElement(k.Bj,{lib:"antd",icon:"bug"})),u&&!h&&v&&r().createElement("button",{className:`${y.button} ${y["button-lucide"]}`,title:I(E.FEEDBACK),onClick:()=>null==m?void 0:m(g.viewId)},r().createElement(k.Bj,T.mJ)),!(!g.viewId||g.withContexts||!l)&&r().createElement("button",{className:`${y.button} ${y["button-lucide"]}`,title:I(E.OPEN_PREVIEW),onClick:()=>{window.open(`${(0,o.getBasePath)().slice(0,-1)}${(0,S.Q)(l,{viewId:g.viewId})}`,"_blank")}},r().createElement(k.Bj,{lib:"lucide",icon:"external-link"})),r().createElement("button",{className:y.button,title:I(E.FULLSCREEN),onClick:b},r().createElement(k.Bj,{lib:"easyops",icon:"expand"})))}(0,i.initializeI18n)(A,{en:{FULLSCREEN:"Fullscreen",FEEDBACK:"Feedback",OPEN_PREVIEW:"Open preview"},zh:{FULLSCREEN:"全屏",FEEDBACK:"反馈",OPEN_PREVIEW:"打开预览"}})},90108:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".human-action--WMMvJhMD{margin-top:22px}.canvas--mQCtCDkd{display:flex;justify-content:center;align-items:center;padding:24px 12px;background:rgba(62,67,102,0.05);box-shadow:0px 1px 0px 0px rgba(255,255,255,0.5);border-radius:9px}",""]),i.locals={"human-action":"human-action--WMMvJhMD",canvas:"canvas--mQCtCDkd"};const l=i},91525:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,'.shine-text--t2t9tIJp{color:transparent;background:linear-gradient(to right,var(--shine-text-color) 0%,var(--shine-text-color) 40%,var(--shine-text-highlight-color) 50%,var(--shine-text-color) 60%,var(--shine-text-color) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:shineText--ycIJ4nxc 2s infinite linear}@keyframes shineText--ycIJ4nxc{0%{background-position:-50% 50%}100%{background-position:-250% 50%}}.markdown--t5EHw6k4 a{color:var(--elevo-color-brand)}.markdown--t5EHw6k4 a:hover{color:var(--elevo-color-brand-hover)}.markdown--t5EHw6k4 a:active{color:var(--elevo-color-brand-active)}.markdown--t5EHw6k4 .shiki{font-family:"Fira Code","Fira Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none;font-size:13px;padding:1em;margin:0.5em 0;overflow-x:auto;border-radius:9px}.markdown--t5EHw6k4 .shiki.light-plus{background:hsl(230,1%,98%)!important}.markdown--t5EHw6k4 table{width:100%;overflow-x:auto;border-collapse:collapse}.markdown--t5EHw6k4 tr{border-top:1px solid #ccd1de}.markdown--t5EHw6k4 td,.markdown--t5EHw6k4 th{border:1px solid #ccd1de;padding:6px 13px}.markdown--t5EHw6k4{overflow-wrap:break-word}.markdown--t5EHw6k4:not(:first-child){margin-top:6px}.markdown--t5EHw6k4 p{margin:1em 0}.markdown--t5EHw6k4 > :first-child,\n.markdown-wrapper--TGg3xHyX > :first-child{margin-top:0}.markdown--t5EHw6k4 > :last-child,\n.markdown-wrapper--TGg3xHyX > :last-child{margin-bottom:0}.table-container--hekbaxrD{padding:8px 8px 10px;border-radius:12px;border:1px solid #e2e2ec;background:#ffffff}.table-container--hekbaxrD:not(:first-child){margin-top:6px}',""]),i.locals={"shine-text":"shine-text--t2t9tIJp",shineText:"shineText--ycIJ4nxc",markdown:"markdown--t5EHw6k4","markdown-wrapper":"markdown-wrapper--TGg3xHyX","table-container":"table-container--hekbaxrD"};const l=i},91797:(e,t,n)=>{n.d(t,{G:()=>i});var a=n(48518),r=n(18769);const o=new Map;function i(e,t){const[n,i]=(0,r.useState)(!0);return(0,r.useEffect)((()=>{if(!e||!t)return void i(!0);let n=o.get(e);void 0===n&&(n=async function(e){var t;const n=await(0,a.y)("LLM_WEB_VIEW_INFO@EASYOPS",e,{fields:"feedback.instanceId"},{priority:"low"});return!(null==n||null===(t=n.feedback)||void 0===t||!t.length)}(e),o.set(e,n));let r=!1;return n.then((e=>{r||i(e)})),()=>{r=!0}}),[e,t]),n}},95996:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([e.id,".files--CibolWoq{display:grid;grid-template-columns:repeat(auto-fit,minmax(204px,1fr));gap:4px;list-style:none;margin:12px 0 0;padding:0}.large--ucsZMWES{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.file--VpyjvXGt{background:rgba(0,0,0,0.04);border-radius:6px;display:flex;height:60px;align-items:center;padding:0 14px}.file--VpyjvXGt,\n.file--VpyjvXGt:hover{color:var(--elevo-color-brand)}.file--VpyjvXGt:hover{background:rgba(0,0,0,0.08)}.content--aY05qnew{min-width:0;flex:1}.icon--TVyjPp5x{margin-right:11px}.name--FehravZW,\n.metadata--ntXgq62x{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name--FehravZW{color:rgba(0,0,0,0.88)}.metadata--ntXgq62x{color:rgba(0,0,0,0.45);font-size:12px;margin-top:3px}.chat--Vk4IEN60{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;margin-top:12px;width:-moz-fit-content;width:fit-content}.chat--Vk4IEN60.images--k6XJWVhb{max-width:412px}.chat--Vk4IEN60:not(.images--k6XJWVhb){gap:8px;max-width:766px}.chat--Vk4IEN60 .file--VpyjvXGt{width:250px}.images--k6XJWVhb{display:flex;flex-wrap:wrap}.images--k6XJWVhb > li{width:100px;height:100px}.images--k6XJWVhb.single--cqRGD9YQ > li{width:200px;height:200px}.image--fvQwfADO{border:1px solid rgba(0,0,0,0.1);border-radius:6px;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:zoom-in;position:relative}.image--fvQwfADO img{max-width:100%;max-height:100%;object-fit:contain}.mask--K81A9CNt{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:6px}.overlay--g3Xz6kGg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:500;font-size:20px;color:#fff}.expand--JhudzGgf{font-size:12px;color:rgba(0,0,0,0.45);display:flex;align-items:center;gap:6px;margin:12px auto 0;background:none;border:none;cursor:pointer}.chat--Vk4IEN60 + .expand--JhudzGgf{margin-right:0}.files--CibolWoq:not(.chat--Vk4IEN60) + .expand--JhudzGgf eo-icon{display:none}.expand--JhudzGgf:hover{color:rgba(0,0,0,0.65)}.expand--JhudzGgf:focus{outline:none}.expand--JhudzGgf.collapsed--rqhtueyy eo-icon{transform:rotate(180deg)}",""]),i.locals={files:"files--CibolWoq",large:"large--ucsZMWES",file:"file--VpyjvXGt",content:"content--aY05qnew",icon:"icon--TVyjPp5x",name:"name--FehravZW",metadata:"metadata--ntXgq62x",chat:"chat--Vk4IEN60",images:"images--k6XJWVhb",single:"single--cqRGD9YQ",image:"image--fvQwfADO",mask:"mask--K81A9CNt",overlay:"overlay--g3Xz6kGg",expand:"expand--JhudzGgf",collapsed:"collapsed--rqhtueyy"};const l=i},97887:(e,t,n)=>{n.d(t,{V:()=>r});var a=n(60128);function r(e){return new URL(e,`${location.origin}${(0,a.getBasePath)()}`).toString()}}}]);
2
- //# sourceMappingURL=2341.0e70532b.js.map