@next-bricks/ai-portal 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/bricks.json +29 -29
  2. package/dist/chunks/103.8b767f50.js +3 -0
  3. package/dist/chunks/103.8b767f50.js.map +1 -0
  4. package/dist/chunks/1306.b74e72b7.js +3 -0
  5. package/dist/chunks/{3689.2a3f6d8c.js.LICENSE.txt → 1306.b74e72b7.js.LICENSE.txt} +0 -2
  6. package/dist/chunks/1306.b74e72b7.js.map +1 -0
  7. package/dist/chunks/{9828.6afc1a0f.js → 3971.8fbc97d3.js} +2 -3
  8. package/dist/chunks/3971.8fbc97d3.js.map +1 -0
  9. package/dist/chunks/495.27e0d477.js +2 -0
  10. package/dist/chunks/495.27e0d477.js.map +1 -0
  11. package/dist/chunks/7954.a92311a2.js +2 -0
  12. package/dist/chunks/7954.a92311a2.js.map +1 -0
  13. package/dist/chunks/9146.40d628b8.js +2 -0
  14. package/dist/chunks/9146.40d628b8.js.map +1 -0
  15. package/dist/chunks/chat-box.0e8ed3b2.js +2 -0
  16. package/dist/chunks/chat-box.0e8ed3b2.js.map +1 -0
  17. package/dist/chunks/chat-input.2bf76ff7.js +3 -0
  18. package/dist/chunks/chat-input.2bf76ff7.js.map +1 -0
  19. package/dist/chunks/chat-stream.40fc8941.js +2 -0
  20. package/dist/chunks/chat-stream.40fc8941.js.map +1 -0
  21. package/dist/chunks/cruise-canvas.f9ae5c01.js +2 -0
  22. package/dist/chunks/cruise-canvas.f9ae5c01.js.map +1 -0
  23. package/dist/chunks/elevo-sidebar.6f74b954.js +3 -0
  24. package/dist/chunks/elevo-sidebar.6f74b954.js.LICENSE.txt +9 -0
  25. package/dist/chunks/elevo-sidebar.6f74b954.js.map +1 -0
  26. package/dist/chunks/main.c4e180ef.js +2 -0
  27. package/dist/chunks/main.c4e180ef.js.map +1 -0
  28. package/dist/chunks/show-case.e7d8f1a7.js +2 -0
  29. package/dist/chunks/show-case.e7d8f1a7.js.map +1 -0
  30. package/dist/examples.json +17 -20
  31. package/dist/index.340c5e1d.js +2 -0
  32. package/dist/index.340c5e1d.js.map +1 -0
  33. package/dist/manifest.json +176 -186
  34. package/dist/types.json +634 -1501
  35. package/dist-types/chat-stream/Aside/Aside.d.ts +1 -1
  36. package/dist-types/chat-stream/AssistantMessage/AssistantMessage.d.ts +1 -2
  37. package/dist-types/chat-stream/ChatStream.d.ts +1 -1
  38. package/dist-types/chat-stream/NodeJob/NodeJob.d.ts +1 -2
  39. package/dist-types/chat-stream/NodeView/NodeView.d.ts +1 -1
  40. package/dist-types/chat-stream/i18n.d.ts +0 -1
  41. package/dist-types/chat-stream/index.d.ts +7 -3
  42. package/dist-types/chat-stream/interfaces.d.ts +1 -1
  43. package/dist-types/chat-stream/useConversationStream.d.ts +2 -2
  44. package/dist-types/cruise-canvas/CanvasContext.d.ts +2 -1
  45. package/dist-types/cruise-canvas/FileList/FileList.d.ts +1 -1
  46. package/dist-types/cruise-canvas/FilePreview/FilePreview.d.ts +1 -1
  47. package/dist-types/cruise-canvas/Nav/Nav.d.ts +2 -2
  48. package/dist-types/cruise-canvas/NodeJob/NodeJob.d.ts +1 -1
  49. package/dist-types/cruise-canvas/NodeReplay/NodeReplay.d.ts +2 -1
  50. package/dist-types/cruise-canvas/NodeView/NodeView.d.ts +1 -1
  51. package/dist-types/cruise-canvas/ToolCallDetail/ToolCallDetail.d.ts +1 -1
  52. package/dist-types/cruise-canvas/ToolCallStatus/ToolCallStatus.d.ts +1 -1
  53. package/dist-types/cruise-canvas/ToolProgressLine/ToolProgressLine.d.ts +1 -1
  54. package/dist-types/cruise-canvas/getFlatOrderedJobs.d.ts +3 -2
  55. package/dist-types/cruise-canvas/i18n.d.ts +0 -11
  56. package/dist-types/cruise-canvas/index.d.ts +0 -7
  57. package/dist-types/cruise-canvas/interfaces.d.ts +1 -99
  58. package/dist-types/cruise-canvas/reducers/errors.d.ts +4 -0
  59. package/dist-types/cruise-canvas/reducers/interfaces.d.ts +2 -2
  60. package/dist-types/cruise-canvas/useConversationDetail.d.ts +1 -1
  61. package/dist-types/cruise-canvas/useConversationGraph.d.ts +2 -2
  62. package/dist-types/cruise-canvas/useLayout.d.ts +1 -2
  63. package/dist-types/cruise-canvas/utils/getToolDataProgress.d.ts +1 -1
  64. package/dist-types/elevo-sidebar/ChatHistory.d.ts +2 -2
  65. package/dist-types/elevo-sidebar/index.d.ts +0 -4
  66. package/dist-types/shared/ChatBox/ChatBox.d.ts +1 -2
  67. package/dist-types/shared/CreatedView/CreatedView.d.ts +1 -1
  68. package/dist-types/shared/TaskContext.d.ts +2 -2
  69. package/dist-types/shared/constants.d.ts +3 -4
  70. package/dist-types/shared/interfaces.d.ts +4 -0
  71. package/package.json +2 -3
  72. package/dist/chunks/3689.2a3f6d8c.js +0 -3
  73. package/dist/chunks/3689.2a3f6d8c.js.map +0 -1
  74. package/dist/chunks/6754.7bcec0be.js +0 -2
  75. package/dist/chunks/6754.7bcec0be.js.map +0 -1
  76. package/dist/chunks/7493.76f316f5.js +0 -2
  77. package/dist/chunks/7493.76f316f5.js.map +0 -1
  78. package/dist/chunks/7520.3cec74b9.js +0 -2
  79. package/dist/chunks/7520.3cec74b9.js.map +0 -1
  80. package/dist/chunks/9535.ff0f82a1.js +0 -3
  81. package/dist/chunks/9535.ff0f82a1.js.map +0 -1
  82. package/dist/chunks/9828.6afc1a0f.js.LICENSE.txt +0 -1
  83. package/dist/chunks/9828.6afc1a0f.js.map +0 -1
  84. package/dist/chunks/9965.6e6bda17.js +0 -2
  85. package/dist/chunks/9965.6e6bda17.js.map +0 -1
  86. package/dist/chunks/chat-box.864bf43b.js +0 -2
  87. package/dist/chunks/chat-box.864bf43b.js.map +0 -1
  88. package/dist/chunks/chat-input.679aec70.js +0 -3
  89. package/dist/chunks/chat-input.679aec70.js.map +0 -1
  90. package/dist/chunks/chat-stream.9c05bfdd.js +0 -2
  91. package/dist/chunks/chat-stream.9c05bfdd.js.map +0 -1
  92. package/dist/chunks/cruise-canvas.259aabf0.js +0 -2
  93. package/dist/chunks/cruise-canvas.259aabf0.js.map +0 -1
  94. package/dist/chunks/elevo-sidebar.08b20757.js +0 -3
  95. package/dist/chunks/elevo-sidebar.08b20757.js.LICENSE.txt +0 -5
  96. package/dist/chunks/elevo-sidebar.08b20757.js.map +0 -1
  97. package/dist/chunks/main.68f962c7.js +0 -2
  98. package/dist/chunks/main.68f962c7.js.map +0 -1
  99. package/dist/chunks/show-case.2e705d81.js +0 -2
  100. package/dist/chunks/show-case.2e705d81.js.map +0 -1
  101. package/dist/index.7be70cad.js +0 -2
  102. package/dist/index.7be70cad.js.map +0 -1
  103. package/dist-types/chat-stream/HumanAdjustPlanResult/HumanAdjustPlanResult.d.ts +0 -5
  104. package/dist-types/chat-stream/LegacyChatStream.d.ts +0 -13
  105. package/dist-types/chat-stream/useTaskStream.d.ts +0 -6
  106. package/dist-types/cruise-canvas/AlertEvents/AlertEvents.d.ts +0 -13
  107. package/dist-types/cruise-canvas/DeploymentChanges/DeploymentChanges.d.ts +0 -12
  108. package/dist-types/cruise-canvas/HumanAdjustPlanResult/HumanAdjustPlanResult.d.ts +0 -5
  109. package/dist-types/cruise-canvas/HumanConfirm/HumanConfirm.d.ts +0 -5
  110. package/dist-types/cruise-canvas/LegacyCruiseCanvas.d.ts +0 -20
  111. package/dist-types/cruise-canvas/PlanProgress/PlanProgress.d.ts +0 -7
  112. package/dist-types/cruise-canvas/ReplayToolbar/ReplayToolbar.d.ts +0 -7
  113. package/dist-types/cruise-canvas/Topology/Topology.d.ts +0 -7
  114. package/dist-types/cruise-canvas/TraceList/TraceList.d.ts +0 -13
  115. package/dist-types/cruise-canvas/cmdb.d.ts +0 -14
  116. package/dist-types/cruise-canvas/diagram.d.ts +0 -3
  117. package/dist-types/cruise-canvas/legacy-reducers/error.d.ts +0 -3
  118. package/dist-types/cruise-canvas/legacy-reducers/error.spec.d.ts +0 -1
  119. package/dist-types/cruise-canvas/legacy-reducers/index.d.ts +0 -3
  120. package/dist-types/cruise-canvas/legacy-reducers/interfaces.d.ts +0 -15
  121. package/dist-types/cruise-canvas/legacy-reducers/jobs.d.ts +0 -4
  122. package/dist-types/cruise-canvas/legacy-reducers/jobs.spec.d.ts +0 -1
  123. package/dist-types/cruise-canvas/legacy-reducers/task.d.ts +0 -4
  124. package/dist-types/cruise-canvas/legacy-reducers/task.spec.d.ts +0 -1
  125. package/dist-types/cruise-canvas/reducers/error.d.ts +0 -3
  126. package/dist-types/cruise-canvas/reducers/error.spec.d.ts +0 -1
  127. package/dist-types/cruise-canvas/useTaskDetail.d.ts +0 -9
  128. package/dist-types/cruise-canvas/useTaskGraph.d.ts +0 -11
  129. package/dist-types/elevo-sidebar/LegacyChatHistory.d.ts +0 -24
  130. package/dist-types/shared/HumanAdjustPlan/HumanAdjustPlan.d.ts +0 -5
  131. package/dist-types/shared/HumanAdjustPlan/i18n.d.ts +0 -17
  132. package/dist-types/shared/ReplayToolbar/ReplayToolbar.d.ts +0 -7
  133. package/dist-types/shared/ReplayToolbar/i18n.d.ts +0 -18
  134. package/docs/cruise-canvas.md +0 -366
  135. /package/dist/chunks/{9535.ff0f82a1.js.LICENSE.txt → 103.8b767f50.js.LICENSE.txt} +0 -0
  136. /package/dist/chunks/{chat-input.679aec70.js.LICENSE.txt → chat-input.2bf76ff7.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/9965.6e6bda17.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/goal-card-list/styles.shadow.css","webpack:///./src/action-buttons/styles.shadow.css","webpack:///./src/activity-timeline/styles.shadow.css","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/project-knowledges/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/dropdown-select/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/show-case/styles.shadow.css","webpack:///./src/goal-card-list/CardItem/CardItem.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/page-container/styles.shadow.css","webpack:///./src/project-summary/styles.shadow.css","webpack:///./src/preview-container/styles.module.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectInTextarea.ts","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/page-container/index.tsx","webpack:///./src/project-summary/i18n.ts","webpack:///./src/project-summary/index.tsx","webpack:///./src/tab-list/index.tsx","webpack:///./src/dropdown-select/i18n.ts","webpack:///./src/dropdown-select/index.tsx","webpack:///./src/data-providers/entity-sdk-list.ts","webpack:///./src/data-providers/entity-sdk-get.ts","webpack:///./src/preview-container/i18n.ts","webpack:///./src/preview-container/styles.module.css?836e","webpack:///./src/preview-container/index.tsx","webpack:///./src/action-buttons/i18n.ts","webpack:///./src/action-buttons/index.tsx","webpack:///./src/goal-card-list/i18n.ts","webpack:///./src/goal-card-list/CardItem/CardItem.tsx","webpack:///./src/goal-card-list/index.tsx","webpack:///./src/project-conversations/i18n.ts","webpack:///./src/project-conversations/index.tsx","webpack:///./src/project-knowledges/index.tsx","webpack:///./src/activity-timeline/i18n.ts","webpack:///./src/activity-timeline/index.tsx","webpack:///./src/chat-input/i18n.ts","webpack:///./src/chat-input/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/show-case/i18n.ts","webpack:///./src/show-case/index.tsx","webpack:///./src/project-conversations/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/chat-input/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.goal-container{display:flex;flex-direction:column;gap:3px}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.button-container{display:flex;gap:6px}.action::part(button){height:28px;font-size:13px;padding:5px 10px}.action.active::part(button){color:var(--elevo-color-brand);background-color:rgba(var(--elevo-color-brand-rgb-channel),0.04)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;color:#262626}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.activity{position:relative;padding-left:27px}.activity + .activity{margin-top:20px}.main{display:flex;align-items:flex-start}.action{flex:1;min-width:0;display:flex;align-items:center;margin-left:6px;word-break:break-word}.time{color:#8c8c8c;margin-left:12px}.action,\n.time{padding:1px 0}.guide-line{position:absolute;left:8px;top:0;bottom:-20px;width:0;background-color:#d8d8d8}.guide-line::before{content:\"\";position:absolute;top:0;bottom:0;left:3.5px;width:1px;background-color:#d8d8d8}.guide-line::after{content:\"\";position:absolute;top:8px;left:0;width:8px;height:8px;border-radius:8px;background-color:#d8d8d8}.activity:first-child .guide-line::before{top:12px}.activity:last-child .guide-line::before{height:12px;bottom:auto}.comment{position:relative;font-size:13px;color:#595959;background-color:#f3f3f3;border-radius:8px;padding:8px 12px;margin-top:10px}.comment::before{content:\"\";position:absolute;top:-6px;left:36px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f3f3f3}.conversation{margin:0 7px 0 10px}.conversation::part(link){background:#f9f0ff;border-radius:3px;font-weight:500;font-size:12px;color:#aa64f5;display:flex;align-items:center;height:24px;padding:0 8px}.external-link-icon{color:#8c8c8c}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.tabs{list-style:none;padding:0;margin:0;display:flex;font-size:16px}.tabs .tab + .tab{margin-left:32px}.tabs a{color:rgba(38,38,38,0.65);cursor:pointer}.tabs .active a{color:#262626;font-weight:500}.tabs .active a::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.item:not(:last-child){margin-bottom:4px}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.icon{font-size:20px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment{color:#1a7aff;margin-left:8px}.header{display:flex;align-items:center}.description{color:#595959;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);margin:0 16px}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:center;width:32px;height:32px}.link.actions-active .avatar,\n.link:hover .avatar,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}img{vertical-align:middle}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*{box-sizing:border-box}.trigger{display:flex;align-items:center;font-size:14px;cursor:pointer;position:relative;padding:4px 12px;border-radius:15px;color:var(--elevo-color-brand)}.trigger:hover{background-color:rgba(37,64,255,0.06)}.trigger::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:linear-gradient(145deg,rgba(37,64,255,1),rgba(180,95,248,1));border-radius:15px;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:xor;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}.trigger .label{margin-right:0}.label{max-width:650px;margin-right:0.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown{max-width:500px;border-radius:4px;background:var(--antd-dropdown-menu-bg);box-shadow:var(--antd-box-shadow-base)}.dropdown-inner{padding:9px 4px}.search-container{padding:3px;border-bottom:1px solid rgba(0,0,0,0.08)}.search::part(affix-wrapper){box-shadow:none;border:none}eo-menu{border:0;padding:0;background:none;border-radius:0}eo-menu-item::part(menu-item){padding:5px 8px;line-height:22px;border-radius:var(--medius-border-radius)}eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}.active::part(menu-item){font-weight:600;background-color:var(--left-sidebar-item-hover-bg)}.empty{display:flex;justify-content:center;align-items:center;color:var(--color-secondary-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1020px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.tips{color:rgba(0,0,0,0.45);margin-bottom:27px}.cases{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/purple@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/green@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./images/pink@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.link{display:block;background:rgba(255,255,255,0.6);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;background-repeat:no-repeat;background-clip:padding-box;overflow:hidden}.purple{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.green{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.pink{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___})}.link::part(link){display:flex;flex-direction:column;gap:0;box-sizing:border-box;height:128px;padding:20px;position:relative}.title{width:100%;margin-bottom:8px;color:#262626;font-weight:500;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{width:100%;height:60px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;color:#18212f;line-height:20px}.link::part(link):hover{box-shadow:0px 4px 12px 0px rgba(96,96,138,0.15),0px 2px 4px 0px rgba(96,96,138,0.06)}.button{display:none;position:absolute;bottom:12px;left:20px;right:20px;height:32px;background:rgba(0,0,0,0.04);border-radius:8px;align-items:center;justify-content:center;gap:4px;color:#262626}.button:hover{background:rgba(0,0,0,0.08)}.link:hover .button{display:flex}.link:hover .description{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 60%;mask-size:100% 60%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.goal-item{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:14px 24px;background-color:rgba(255,255,255,0.6);border-radius:8px;-webkit-user-select:none;user-select:none;border:1px solid transparent}.goal-item:hover{background-color:rgba(0,0,0,0.05)}.goal-item:hover .end .operation{display:block}.goal-item:hover .end .info{display:none}.goal-item.completed .serial-number,.goal-item.completed .title{color:#bfbfbf}.goal-item.active{background:rgba(37,64,255,0.1);border:1px solid #2540ff}.goal-item > *{-webkit-user-select:auto;user-select:auto}.goal-item .start,.goal-item .end{display:flex;align-items:center}.goal-item .start{flex:1;min-width:0;column-gap:16px;min-width:0}.goal-item .end{flex-shrink:0;column-gap:30px}.goal-item .end .operation{display:none}.goal-item .end .operation .new-chat::part(button){height:28px;font-size:13px;padding:5px 10px}.goal-item .end .info{display:inline-flex;align-items:center;column-gap:16px}.goal-item .serial-number{font-weight:400;color:var(--palette-gray-7)}.goal-item .title{font-weight:500;padding:2px 4px;color:var(--palette-gray-10);border:1px solid transparent;border-radius:8px;cursor:pointer;min-width:0}.goal-item .title:hover{background-color:rgba(255,255,255,0.6);border:1px solid var(--palette-gray-5);cursor:text}.goal-item .title:focus{outline:none;background-color:rgba(255,255,255,0.6);border:1px solid var(--elevo-color-brand)}.goal-item .icon{border-radius:8px;padding:4px;margin-top:4px}.goal-item .icon:hover{background-color:rgba(0,0,0,0.04)}.goal-item .message{color:var(--palette-gray-7);display:inline-flex;align-items:center;column-gap:6px}.goal-item .message .count{font-weight:500;color:var(--palette-gray-10)}.goal-item:not(.editing) .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px;margin:0 -12px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.mentions{position:absolute}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}:host([variant=\"mini-light\"]) button{color:#8c8c8c;width:20px;height:20px;font-size:14px;border-radius:4px}:host([variant=\"bordered\"]) button{background:#ffffff;border-radius:8px;border:1px solid rgba(0,0,0,0.1);color:#595959;width:32px;height:32px;font-size:18px}:host([variant=\"bordered\"]) button:not(:disabled):hover{background:rgba(0,0,0,0.04)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:17px 54px 48px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}:host([size=\"small\"]) .container{max-width:1000px}.header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:center}nav{font-weight:500;font-size:20px;line-height:28px;display:flex;min-width:0}h1{margin:0;font-size:inherit;line-height:inherit}.breadcrumbs{list-style:none;padding:0;margin:0;color:#bfbfbf}.breadcrumbs eo-link::part(link){color:inherit}.breadcrumbs eo-link::part(link):hover{color:#595959}.breadcrumbs li::after{content:\"/\";margin:0 8px}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}.header{margin-left:40px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.chats{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;margin-top:2em}.chats .link{display:block}.chats .link::part(link){background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,0.1);overflow:hidden;display:block;padding:16px 16px 12px}.chats .link::part(link):hover{box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1)}.chats .title{height:40px;line-height:20px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#262626}.chats .time{margin-top:20px;font-size:12px;color:#8c8c8c;display:flex;align-items:center}.chats .time eo-icon{margin-right:4px}.loading{display:flex;align-items:center;justify-content:center;margin-top:2em;font-size:16px;color:#8c8c8c}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.preview-container{display:block;background:rgba(247,248,250,1)}.loading--uD2jY9vX{position:absolute;top:50%;left:50%;font-size:48px;color:var(--palette-gray-5);margin:0 -24px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"loading\": `loading--uD2jY9vX`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { Job, TaskBaseDetail, FeedbackDetail } from \"./interfaces.js\";\nimport { LegacyCruiseCanvasComponent } from \"./LegacyCruiseCanvas.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n} from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n previewUrlTemplate?: string;\n showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedLegacyCruiseCanvasComponent = forwardRef(\n LegacyCruiseCanvasComponent\n);\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor showCases: ShowCaseType[] | undefined;\n\n @property({ attribute: false })\n accessor exampleProjects: ExampleProject[] | undefined;\n\n @property()\n accessor tryItOutUrl: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedCruiseCanvasComponent\n : ForwardedLegacyCruiseCanvasComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n previewUrlTemplate={this.previewUrlTemplate}\n showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n ref={this.#ref}\n />\n );\n }\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getCaretPositionInTextarea(\n textarea: HTMLTextAreaElement,\n index: number\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n hiddenElement.textContent = textarea.value.slice(0, index);\n\n const span = document.createElement(\"span\");\n span.textContent = \"\\u200b\"; // 占位符\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return rect;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n SimpleAction,\n} from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedActions = wrapBrick<\n EoActions,\n ActionsProps,\n ActionsEvents,\n ActionsEventsMapping\n>(\"eo-actions\", {\n onActionClick: \"action.click\",\n onItemDragEnd: \"item.drag.end\",\n onItemDragStart: \"item.drag.start\",\n});\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"ai-employee.mention\" })\n accessor #employeeMention!: EventEmitter<AIEmployee | null>;\n\n #handleEmployeeMention = (employee: AIEmployee | null) => {\n this.#employeeMention.emit(employee);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n onSubmit={this.#handleMessageSubmit}\n onEmployeeMention={this.#handleEmployeeMention}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onSubmit: (value: string) => void;\n onEmployeeMention: (employee: AIEmployee | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n position: {\n left: number;\n top: number;\n };\n range: {\n start: number;\n end: number;\n };\n actions: SimpleAction[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n onSubmit,\n onEmployeeMention,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n }));\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (\n !mentionedText &&\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n aiEmployees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n const mentionIndex = previousContent.lastIndexOf(\"@\");\n if (mentionIndex >= 0) {\n const mentionText = previousContent\n .slice(mentionIndex + 1)\n .toLowerCase();\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const matchedEmployees = aiEmployees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, 10);\n if (matchedEmployees.length > 0) {\n setMentionPopover({\n position: {\n left: position.left + 10,\n top: position.top + 22,\n },\n range: { start: mentionIndex, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return;\n }\n }\n }\n setMentionPopover(null);\n },\n [aiEmployees, mentionedText]\n );\n\n useEffect(() => {\n if (mentionedText && !value.includes(mentionedText)) {\n setMentionedText(\"\");\n onEmployeeMention(null);\n }\n }, [mentionedText, onEmployeeMention, value]);\n\n const handleSubmitClick = useCallback(() => {\n onSubmit(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const mentionPrefix = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return \"\";\n }\n const index = value.indexOf(mentionedText);\n if (index < 0) {\n return \"\";\n }\n return value.slice(0, index);\n }, [mentionedText, value]);\n\n const mentionOverlay = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return null;\n }\n const rect = getContentRectInTextarea(\n element,\n mentionPrefix,\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n return {\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n };\n }, [mentionedText, mentionPrefix]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n onEmployeeMention((action as { data?: AIEmployee }).data!);\n },\n [mentionPopover, onEmployeeMention]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = mentionPopover.actions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n return false;\n }\n case \"Enter\":\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n handleMention(mentionPopover.actions[activeActionIndex]);\n return false;\n case \"Delete\":\n case \"Backspace\": {\n if (mentionedText?.length) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = mentionPrefix.length;\n const currentEnd = currentStart + mentionedText.length;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n handleMention,\n mentionPopover,\n mentionPrefix.length,\n mentionedText?.length,\n ]\n );\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {mentionPopover && (\n <WrappedActions\n className=\"mentions\"\n actions={mentionPopover.actions}\n style={mentionPopover.position}\n onActionClick={(e) => handleMention(e.detail)}\n checkedKeys={[mentionPopover.actions[activeActionIndex].key!]}\n />\n )}\n {mentionOverlay && (\n <div className=\"mention-overlay\" style={mentionOverlay} />\n )}\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n type Project,\n type ProjectActionClickDetail,\n} from \"./ChatHistory.js\";\nimport {\n LegacyChatHistory,\n type LegacyActionClickDetail,\n} from \"./LegacyChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst WrappedElevoLogo = wrapBrick(\"ai-portal.elevo-logo\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n /** @deprecated */\n legacy?: boolean;\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n bordered?: boolean;\n logoUrl?: string;\n newChatUrl?: string;\n newChatLinkWhenCollapsed?: boolean;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n links?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n /** @deprecated */\n @property({ type: Boolean })\n accessor legacy = true;\n\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property({ type: Boolean, render: false })\n accessor bordered: boolean | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property({ type: Boolean })\n accessor newChatLinkWhenCollapsed: boolean | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property()\n accessor projectActiveId: string | undefined;\n\n @property()\n accessor projectUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor projectActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<\n ActionClickDetail | LegacyActionClickDetail\n >;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleLegacyActionClick = (detail: LegacyActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"project.action.click\" })\n accessor #projectActionClick!: EventEmitter<ProjectActionClickDetail>;\n\n #handleProjectActionClick = (detail: ProjectActionClickDetail) => {\n this.#projectActionClick.emit(detail);\n };\n\n @event({ type: \"add.project\" })\n accessor #addProject!: EventEmitter<void>;\n\n #handleAddProject = () => {\n this.#addProject.emit();\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n @method()\n removeProject(projectId: string) {\n this.#ref.current?.removeProject?.(projectId);\n }\n\n @method()\n addProject(project: Project) {\n this.#ref.current?.addProject?.(project);\n }\n\n @method()\n moveConversation(conversationId: string) {\n this.#ref.current?.moveConversation?.(conversationId);\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n legacy={this.legacy}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n newChatLinkWhenCollapsed={this.newChatLinkWhenCollapsed}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n projectActiveId={this.projectActiveId}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n links={this.links}\n onLogout={this.#handleLogout}\n onLegacyActionClick={this.#handleLegacyActionClick}\n onActionClick={this.#handleActionClick}\n onProjectActionClick={this.#handleProjectActionClick}\n onAddProject={this.#handleAddProject}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n onLegacyActionClick: (detail: LegacyActionClickDetail) => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n legacy,\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n links,\n onLogout,\n onActionClick,\n onLegacyActionClick,\n onProjectActionClick,\n onAddProject,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n removeProject: (projectId: string) => {\n historyRef.current?.removeProject?.(projectId);\n },\n addProject: (project: Project) => {\n historyRef.current?.addProject?.(project);\n },\n moveConversation: (conversationId: string) => {\n historyRef.current?.moveConversation?.(conversationId);\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n {newChatLinkWhenCollapsed && (\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n )}\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <WrappedElevoLogo />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n {legacy ? (\n <LegacyChatHistory\n ref={historyRef}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onLegacyActionClick}\n onHistoryClick={handleHistoryClick}\n />\n ) : (\n <ChatHistory\n ref={historyRef}\n historyActiveId={historyActiveId}\n historyUrlTemplate={historyUrlTemplate}\n historyActions={historyActions}\n projectActiveId={projectActiveId}\n projectUrlTemplate={projectUrlTemplate}\n projectActions={projectActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n onProjectActionClick={onProjectActionClick}\n onAddProject={onAddProject}\n />\n )}\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant =\n | \"default\"\n | \"light\"\n | \"mini\"\n | \"mini-light\"\n | \"bordered\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n EXPLORE_EXCELLENT_CASES = \"EXPLORE_EXCELLENT_CASES\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n [K.EXPLORE_EXCELLENT_CASES]: \"Explore excellent cases\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n [K.EXPLORE_EXCELLENT_CASES]: \"探索优秀案例\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\nimport type { ShowCase, ShowCaseProps } from \"../show-case/index.js\";\nimport type { ShowCaseType } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedShowCase = wrapBrick<ShowCase, ShowCaseProps>(\n \"ai-portal.show-case\"\n);\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCaseType[];\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCaseType[] | undefined;\n\n render() {\n return <ShowCasesComponent list={this.list} />;\n }\n}\n\nfunction ShowCasesComponent({ list }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<string[]>(() => {\n return [\"\", ...new Set(list?.map((item) => item.scenario).filter(Boolean))];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState(\"\");\n\n const filteredList = useMemo(() => {\n if (!activeGroup) {\n return list;\n }\n return list?.filter((item) => item.scenario === activeGroup);\n }, [activeGroup, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return groups.map((group) => ({\n id: group,\n label: group === \"\" ? t(K.ALL) : group,\n }));\n }, [groups]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <div className=\"tips\">{`${t(K.EXPLORE_EXCELLENT_CASES)} ↓`}</div>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeGroup}\n onTabClick={(event) => setActiveGroup(event.detail.id)}\n />\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.conversationId}>\n <WrappedShowCase\n caseTitle={item.title}\n summary={item.summary}\n url={item.url}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <McpToolsComponent list={this.list} withContainer={this.withContainer} />\n );\n }\n}\n\nfunction McpToolsComponent({ list, withContainer }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [\"\", ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState(\"\");\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (!activePlatform) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n const tabs = useMemo<Tab[]>(() => {\n return platforms.map((platform) => ({\n id: platform,\n label: platform === \"\" ? t(K.ALL) : platform,\n }));\n }, [platforms]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activePlatform}\n onTabClick={(event) => setActivePlatform(event.detail.id)}\n />\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n {node}\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { LegacyChatStreamComponent } from \"./LegacyChatStream.js\";\nimport { ChatStreamComponent } from \"./ChatStream.js\";\nimport type { RequestStore } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n previewUrlTemplate?: string;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedLegacyChatStreamComponent = forwardRef(\n LegacyChatStreamComponent\n);\n\nconst ForwardedChatStreamComponent = forwardRef(ChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedChatStreamComponent\n : ForwardedLegacyChatStreamComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n previewUrlTemplate={this.previewUrlTemplate}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n />\n );\n }\n}\n\nexport interface ChatStreamRef {\n resumed?: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n UNTITLED: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n avatar?: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIEmployeesComponent\n list={this.list}\n industries={this.industries}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n urlTemplate,\n withContainer,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return industries.map((industry) => ({\n id: industry,\n label: industry || t(K.UNTITLED),\n }));\n }, [industries]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeIndustry}\n onTabClick={(event) => setActiveIndustry(event.detail.id)}\n />\n <ul className=\"groups\">\n {groups.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"avatar\">\n {item.avatar ? (\n <img src={item.avatar} />\n ) : (\n <WrappedIcon lib=\"antd\" icon=\"user\" />\n )}\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n {node}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIAgentsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIAgentsComponent({\n list,\n urlTemplate,\n withContainer,\n}: AIAgentsProps) {\n const node = (\n <>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n {node}\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\n);\n","import React, { useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport styleText from \"./styles.shadow.css\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PageContainerProps {\n pageTitle?: string;\n breadcrumbs?: Breadcrumb[];\n size?: \"medium\" | \"small\";\n}\n\nexport interface Breadcrumb {\n text: string;\n url: string;\n}\n\n/**\n * 构件 `ai-portal.page-container`\n *\n * @slot - 内容\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.page-container\", {\n styleTexts: [styleText],\n})\nclass PageContainer extends ReactNextElement implements PageContainerProps {\n @property()\n accessor pageTitle: string | undefined;\n\n @property({ attribute: false })\n accessor breadcrumbs: Breadcrumb[] | undefined;\n\n @property({ render: false })\n accessor size: \"medium\" | \"small\" | undefined;\n\n render() {\n return (\n <PageContainerComponent\n pageTitle={this.pageTitle}\n breadcrumbs={this.breadcrumbs}\n />\n );\n }\n}\n\nfunction PageContainerComponent({\n breadcrumbs,\n pageTitle,\n}: PageContainerProps) {\n useEffect(() => {\n if (typeof pageTitle === \"string\") {\n getRuntime().applyPageTitle(pageTitle);\n }\n }, [pageTitle]);\n\n return (\n <div className=\"container\">\n {pageTitle || breadcrumbs?.length ? (\n <div className=\"header\">\n <nav>\n {breadcrumbs?.length ? (\n <ul className=\"breadcrumbs\">\n {breadcrumbs.map((item, index) => (\n <li key={index}>\n <WrappedLink url={item.url}>{item.text}</WrappedLink>\n </li>\n ))}\n </ul>\n ) : null}\n {pageTitle ? <h1>{pageTitle}</h1> : null}\n </nav>\n <slot name=\"toolbar\" />\n </div>\n ) : null}\n <slot />\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n CHATS = \"CHATS\",\n GOALS = \"GOALS\",\n}\n\nconst en: Locale = {\n [K.CHATS]: \"Chat history\",\n [K.GOALS]: \"Project goals\",\n};\n\nconst zh: Locale = {\n [K.CHATS]: \"历史对话\",\n [K.GOALS]: \"项目目标\",\n};\n\nexport const NS = \"bricks/ai-portal/project-summary\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst TAB_ID_CHATS = \"chats\";\nconst TAB_ID_GOALS = \"goals\";\n\nconst TABS: Tab[] = [\n {\n id: TAB_ID_CHATS,\n label: t(K.CHATS),\n },\n {\n id: TAB_ID_GOALS,\n label: t(K.GOALS),\n },\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ProjectSummaryProps {\n chatList?: Chat[];\n chatUrlTemplate?: string;\n}\n\nexport interface Chat {\n conversationId: string;\n title: string;\n startTime: number;\n}\n\n/**\n * 构件 `ai-portal.project-summary`\n */\nexport\n@defineElement(\"ai-portal.project-summary\", {\n styleTexts: [styleText],\n})\nclass ProjectSummary extends ReactNextElement implements ProjectSummaryProps {\n @property({ attribute: false })\n accessor chatList: Chat[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ProjectSummaryComponent\n chatList={this.chatList}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ProjectSummaryComponent({\n chatList,\n chatUrlTemplate,\n}: ProjectSummaryProps) {\n const [activeTab, setActiveTab] = useState(TAB_ID_CHATS);\n return (\n <>\n <WrappedTabList\n tabs={TABS}\n activeTab={activeTab}\n onTabClick={(event) => setActiveTab(event.detail.id)}\n />\n {activeTab === TAB_ID_CHATS ? (\n chatList ? (\n <ul className=\"chats\">\n {chatList.map((item) => (\n <li key={item.conversationId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(chatUrlTemplate, item)}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"time\">\n <WrappedIcon lib=\"antd\" icon=\"clock-circle\" />\n {humanizeTime(item.startTime, HumanizeTimeFormat.relative)}\n </div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )\n ) : null}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface TabListProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\nexport interface TabListEvents {\n \"tab.click\": CustomEvent<Tab>;\n}\n\nexport interface TabListMapping {\n onTabClick: \"tab.click\";\n}\n\n/**\n * 构件 `ai-portal.tab-list`\n *\n * @part tabs - The tab list container\n * @part tab - The individual tab\n */\nexport\n@defineElement(\"ai-portal.tab-list\", {\n styleTexts: [styleText],\n})\nclass TabList extends ReactNextElement implements TabListProps {\n @property({ attribute: false })\n accessor tabs: Tab[] | undefined;\n\n @property({ attribute: false })\n accessor activeTab: string | undefined;\n\n @event({ type: \"tab.click\" })\n accessor #tabClick!: EventEmitter<Tab>;\n\n #handleTabClick = (tab: Tab) => {\n this.activeTab = tab.id;\n this.#tabClick.emit(tab);\n };\n\n render() {\n return (\n <TabListComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface TabListComponentProps extends TabListProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction TabListComponent({\n tabs,\n activeTab,\n onTabClick,\n}: TabListComponentProps) {\n return (\n <ul className=\"tabs\" part=\"tabs\">\n {tabs?.map((tab) => (\n <li\n key={tab.id}\n part=\"tab\"\n className={classNames(\"tab\", { active: tab.id === activeTab })}\n >\n <a onClick={() => onTabClick(tab)}>{tab.label}</a>\n </li>\n ))}\n </ul>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PLEASE_SELECT = \"PLEASE_SELECT\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n SEARCH_NO_DATA = \"SEARCH_NO_DATA\",\n}\n\nconst en: Locale = {\n PLEASE_SELECT: \"Please Select\",\n SEARCH_PLACEHOLDER: \"Search\",\n SEARCH_NO_DATA: \"No Data\",\n};\n\nconst zh: Locale = {\n PLEASE_SELECT: \"请选择\",\n SEARCH_PLACEHOLDER: \"搜索\",\n SEARCH_NO_DATA: \"暂无结果\",\n};\n\nexport const NS = \"bricks/ai-portal/dropdown-select\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { debounce } from \"lodash\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport { Menu } from \"@next-bricks/basic/menu\";\nimport { MenuItem, MenuComponentProps } from \"@next-bricks/basic/menu-item\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport {\n LoadingContainer,\n LoadingContainerProps,\n} from \"@next-bricks/basic/loading-container\";\nimport { Input, InputEvents, InputProps } from \"@next-bricks/form/input\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLoadingContainer = wrapBrick<\n LoadingContainer,\n LoadingContainerProps\n>(\"eo-loading-container\");\n\nconst WrappedMenu = wrapBrick<Menu, unknown>(\"eo-menu\");\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onValueChange: \"change\",\n }\n);\n\nexport interface DropdownSelectProps {\n value?: string;\n options?: DropdownOptions[];\n labelMaxWidth?: string | number;\n dropdownMaxWidth?: string | number;\n dropdownContentStyle?: React.CSSProperties;\n showSearch?: boolean;\n searchPlaceholder?: string;\n loading?: boolean;\n}\n\ninterface DropdownOptions {\n label: string;\n value: string;\n disabled?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * 构件 `ai-portal.dropdown-select`\n */\nexport\n@defineElement(\"ai-portal.dropdown-select\", {\n styleTexts: [styleText],\n})\nclass DropdownSelect extends ReactNextElement implements DropdownSelectProps {\n @property()\n accessor value: string | undefined;\n\n @property({ attribute: false })\n accessor options: DropdownOptions[] | undefined;\n\n @property({ attribute: false })\n accessor labelMaxWidth: string | number | undefined;\n\n @property({ type: Boolean })\n accessor loading: boolean | undefined;\n\n @property({ attribute: false })\n accessor searchPlaceholder: string | undefined;\n\n @property({ attribute: false })\n accessor dropdownContentStyle: React.CSSProperties | undefined;\n\n /**\n * @default \"500px\"\n */\n @property({ attribute: false })\n accessor dropdownMaxWidth: string | number | undefined;\n\n /** 是否展示搜索框 */\n @property({ type: Boolean })\n accessor showSearch: boolean | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DropdownOptions>;\n\n #handleChange = (option: DropdownOptions) => {\n this.#changeEvent.emit(option);\n };\n\n render() {\n return (\n <DropdownSelectComponent\n value={this.value}\n options={this.options}\n onChange={this.#handleChange}\n loading={this.loading}\n labelMaxWidth={this.labelMaxWidth}\n dropdownMaxWidth={this.dropdownMaxWidth}\n showSearch={this.showSearch}\n searchPlaceholder={this.searchPlaceholder}\n dropdownContentStyle={this.dropdownContentStyle}\n />\n );\n }\n}\n\ninterface DropdownSelectComponentProps extends DropdownSelectProps {\n onChange: (option: DropdownOptions) => void;\n}\n\nfunction DropdownSelectComponent({\n value: _value,\n options: _options,\n labelMaxWidth,\n dropdownMaxWidth,\n showSearch,\n loading,\n searchPlaceholder,\n dropdownContentStyle,\n onChange,\n}: DropdownSelectComponentProps) {\n const [open, setOpen] = useState(false);\n const [value, setValue] = useState(_value);\n const [q, setQ] = useState(\"\");\n const [options, setOptions] = useState<DropdownOptions[] | undefined>(\n _options\n );\n\n useEffect(() => {\n setOptions(_options);\n }, [_options]);\n\n const activeOption = useMemo(() => {\n return options?.find((opt) => opt.value === value);\n }, [options, value]);\n\n const filteredOptions = useMemo(() => {\n if (!q || !options) {\n return options;\n }\n return options?.filter((ops) =>\n ops.label.toLowerCase().includes(q.toLowerCase())\n );\n }, [options, q]);\n\n const handleBeforeVisibleChange = useCallback((e: CustomEvent<boolean>) => {\n setOpen(e.detail);\n if (!e.detail) {\n setQ(\"\");\n }\n }, []);\n\n const handleSearchChange = useMemo(\n () =>\n debounce((evt: CustomEvent<string>) => {\n setQ(evt.detail);\n }, 300),\n []\n );\n\n return (\n <WrappedPopover\n placement=\"bottom-start\"\n trigger=\"click\"\n active={open}\n arrow={false}\n distance={5}\n onBeforeVisibleChange={handleBeforeVisibleChange}\n >\n <span slot=\"anchor\" className=\"trigger\">\n <span className=\"label\" style={{ maxWidth: labelMaxWidth }}>\n {activeOption ? activeOption?.label : t(K.PLEASE_SELECT)}\n </span>\n <WrappedIcon lib=\"lucide\" icon={open ? \"chevron-up\" : \"chevron-down\"} />\n </span>\n <div className=\"dropdown\" style={{ maxWidth: dropdownMaxWidth }}>\n {showSearch && (\n <div className=\"search-container\">\n <WrappedInput\n className=\"search\"\n value={q}\n placeholder={searchPlaceholder || t(K.SEARCH_PLACEHOLDER)}\n onValueChange={handleSearchChange}\n >\n <WrappedIcon slot=\"prefix\" lib=\"antd\" icon=\"search\" />\n </WrappedInput>\n </div>\n )}\n <WrappedLoadingContainer\n loading={loading}\n delay={500}\n style={{ width: \"100%\" }}\n >\n <div className=\"dropdown-inner\" style={dropdownContentStyle}>\n <slot name=\"prefix\" />\n {!!filteredOptions?.length && (\n <WrappedMenu>\n {filteredOptions?.map((opt) => (\n <WrappedMenuItem\n key={opt.value}\n disabled={opt.disabled}\n className={value === opt.value ? \"active\" : undefined}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setOpen(false);\n if (value !== opt.value) {\n setValue(opt.value);\n onChange(opt);\n }\n }}\n >\n {opt.label}\n </WrappedMenuItem>\n ))}\n </WrappedMenu>\n )}\n {!filteredOptions?.length && (\n <div className=\"empty\">{t(K.SEARCH_NO_DATA)}</div>\n )}\n </div>\n </WrappedLoadingContainer>\n </div>\n </WrappedPopover>\n );\n}\n","// istanbul ignore file: mock\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport { http } from \"@next-core/http\";\n\nexport async function entitySdkList(\n workspace: string,\n entity: string,\n params?: any\n): Promise<unknown> {\n if (!workspace) {\n throw new Error(\"Workspace is required for Entity SDK.\");\n }\n if (entity === \"HOST_METRIC\") {\n return (\n await http.post<{ data: unknown }>(\n \"api/gateway/data_exchange.olap.Query/api/v1/data_exchange/olap\",\n {\n model: \"easyops.HOST\",\n filters: convertQueryToFilters(params?.query),\n dims: [\"time(auto)\"],\n measures: convertFieldsToMeasures(params?.fields),\n }\n )\n ).data;\n }\n return InstanceApi_postSearchV3(entity, params);\n}\n\nconst OPERATOR_MAP = new Map([\n [\"$eq\", \"==\"],\n [\"$ne\", \"!=\"],\n [\"$gt\", \">\"],\n [\"$lt\", \"<\"],\n [\"$gte\", \">=\"],\n [\"$lte\", \"<=\"],\n]);\n\nfunction convertQueryToFilters(query: any): any[] {\n return Object.entries(query || {}).flatMap(([name, condition]) => {\n return Object.entries(condition || {}).map(([op, value]) => {\n const operator = OPERATOR_MAP.get(op);\n if (!operator) {\n throw new Error(`Unsupported operator: \"${op}\"`);\n }\n return { name, operator, value };\n });\n });\n}\n\nfunction convertFieldsToMeasures(\n fields: string[] | undefined\n): any[] | undefined {\n return fields?.map((field) => ({\n function: {\n args: [field],\n expression: \"avg\",\n },\n name: field,\n }));\n}\n\ncustomElements.define(\n \"ai-portal.entity-sdk-list\",\n createProviderClass(entitySdkList)\n);\n","// istanbul ignore file: mock\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\n\nexport async function entitySdkGet(\n workspace: string,\n entity: string,\n id: string\n): Promise<unknown> {\n if (!workspace) {\n throw new Error(\"Workspace is required for Entity SDK.\");\n }\n return InstanceApi_getDetail(entity, id, {});\n}\n\ncustomElements.define(\n \"ai-portal.entity-sdk-get\",\n createProviderClass(entitySdkGet)\n);\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n UNTITLED: \"无标题\",\n};\n\nexport const NS = \"bricks/ai-portal/preview-container\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { Suspense, use, useEffect, useMemo, useRef } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { unstable_createRoot } from \"@next-core/runtime\";\nimport type { ParseResult } from \"@next-shared/tsx-parser\";\nimport {\n convertTsx,\n getViewTitle,\n type ConvertResult,\n} from \"@next-shared/tsx-converter\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoPageTitle,\n PageTitleProps,\n} from \"@next-bricks/basic/page-title\";\nimport type {\n EoMainView,\n MainViewProps,\n} from \"@next-bricks/containers/main-view\";\nimport type {\n EoNarrowView,\n NarrowViewProps,\n} from \"@next-bricks/containers/narrow-view\";\nimport { uniqueId } from \"lodash\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styles from \"./styles.module.css\";\nimport { getRemoteTsxParserWorker } from \"../shared/workers/tsxParser.js\";\nimport { createPortal } from \"../cruise-canvas/utils/createPortal.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedPageTitle = wrapBrick<EoPageTitle, PageTitleProps>(\n \"eo-page-title\"\n);\nconst WrappedMainView = wrapBrick<EoMainView, MainViewProps>(\"eo-main-view\");\nconst WrappedNarrowView = wrapBrick<EoNarrowView, NarrowViewProps>(\n \"eo-narrow-view\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PreviewContainerProps {\n source?: string;\n}\n\n/**\n * 构件 `ai-portal.preview-container`\n */\nexport\n@defineElement(\"ai-portal.preview-container\", {\n shadowOptions: false,\n})\nclass PreviewContainer\n extends ReactNextElement\n implements PreviewContainerProps\n{\n @property({ attribute: false })\n accessor source: string | undefined;\n\n #rootId = uniqueId();\n\n render() {\n return (\n <Suspense\n fallback={\n <WrappedIcon\n lib=\"antd\"\n icon=\"loading-3-quarters\"\n spinning\n className={styles.loading}\n />\n }\n >\n <PreviewContainerComponent rootId={this.#rootId} source={this.source} />\n </Suspense>\n );\n }\n}\n\ninterface PreviewContainerComponentProps extends PreviewContainerProps {\n rootId: string;\n}\n\nfunction PreviewContainerComponent({\n rootId,\n source,\n}: PreviewContainerComponentProps) {\n const parsedResultPromise = useMemo(() => {\n if (!source) {\n return Promise.resolve(null);\n }\n return parse(source).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to parse view:\", error);\n return null;\n });\n }, [source]);\n\n const parsedResult = use(parsedResultPromise);\n\n const convertedResultPromise = useMemo(() => {\n if (!parsedResult) {\n return Promise.resolve(null);\n }\n return convertTsx(parsedResult, {\n rootId,\n expanded: true,\n }).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to convert view:\", error);\n return null;\n });\n }, [parsedResult, rootId]);\n\n const convertedResult = use(convertedResultPromise);\n\n const viewTitle = useMemo(() => getViewTitle(parsedResult), [parsedResult]);\n\n return (\n <RenderComponent\n rootId={rootId}\n pageTitle={viewTitle}\n convertedResult={convertedResult}\n />\n );\n}\n\ninterface RenderComponentProps {\n rootId: string;\n pageTitle?: string;\n convertedResult: ConvertResult | null;\n}\n\nfunction RenderComponent({\n rootId,\n pageTitle,\n convertedResult,\n}: RenderComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Awaited<\n ReturnType<typeof unstable_createRoot>\n > | null>(null);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n const portal = createPortal(rootId);\n const root = unstable_createRoot(container, {\n portal,\n supportsUseChildren: true,\n } as any);\n rootRef.current = root;\n return () => {\n root.unmount();\n portal.remove();\n rootRef.current = null;\n };\n }, [rootId]);\n\n useEffect(() => {\n if (!convertedResult) {\n return;\n }\n const { brick, context, functions, templates } = convertedResult;\n rootRef.current?.render(brick, { context, functions, templates });\n }, [convertedResult]);\n\n return (\n <WrappedNarrowView size=\"large\" className={styles.container}>\n <WrappedMainView>\n <WrappedPageTitle\n slot=\"pageTitle\"\n pageTitle={pageTitle || t(K.UNTITLED)}\n />\n <div className={styles.main} ref={containerRef} data-root-id={rootId} />\n </WrappedMainView>\n </WrappedNarrowView>\n );\n}\n\nasync function parse(source: string): Promise<ParseResult> {\n const worker = await getRemoteTsxParserWorker();\n const result = await worker.parse(source);\n return result;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n // HELLO: \"Hello\",\n};\n\nconst zh: Locale = {\n // HELLO: \"你好\",\n};\n\nexport const NS = \"bricks/ai-portal/action-buttons\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\n\ninitializeI18n(NS, locales);\n\nconst WrapperButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst { defineElement, property, event } = createDecorators();\n\ninterface ActionItem extends ButtonProps {\n text: string;\n icon?: GeneralIconProps;\n active?: boolean;\n event?: string;\n hidden?: boolean;\n}\n\nexport interface ActionsButtonsProps {\n items?: ActionItem[];\n multiple?: boolean; // 是否支持多选\n}\n\n/**\n * 构件 `ai-portal.action-buttons`\n */\nexport\n@defineElement(\"ai-portal.action-buttons\", {\n styleTexts: [styleText],\n})\nclass ActionsButtons extends ReactNextElement implements ActionsButtonsProps {\n @property({\n attribute: false,\n })\n accessor items: ActionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor multiple: boolean | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionItem>;\n\n #handleActionClick = (action: ActionItem) => {\n const newItems = this.items?.map((item) => {\n if (item.text === action.text) {\n return { ...item, active: !item.active };\n }\n\n return this.multiple ? item : { ...item, active: false };\n });\n\n this.items = newItems;\n const current = newItems?.find((item) => item.text === action.text);\n this.#actionClick.emit(current!);\n if (action.event) {\n const customEvent = new CustomEvent(action.event, {\n detail: {\n current,\n actives: newItems?.filter((item) => item.active),\n },\n });\n this.dispatchEvent(customEvent);\n }\n };\n\n render() {\n return (\n <ActionsButtonsComponent\n items={this.items}\n multiple={this.multiple}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ActionsButtonsComponentProps extends ActionsButtonsProps {\n onActionClick: (action: ActionItem) => void;\n}\n\nfunction ActionsButtonsComponent({\n items,\n onActionClick,\n}: ActionsButtonsComponentProps) {\n const filteredItems = useMemo(() => {\n return items?.filter((item) => !item.hidden);\n }, [items]);\n\n return (\n <div className=\"button-container\">\n {filteredItems?.map((item, index) => {\n const { event, text, active, ...rest } = item;\n return (\n <WrapperButton\n key={index}\n className={`action${active ? \" active\" : \"\"}`}\n themeVariant=\"elevo\"\n type=\"neutral\"\n {...rest}\n onClick={() => onActionClick(item)}\n >\n {text}\n </WrapperButton>\n );\n })}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UN_START_STATUS = \"UN_START_STATUS\",\n RUNNING_STATUS = \"RUNNING_STATUS\",\n COMPLETED_STATUS = \"COMPLETED_STATUS\",\n NEW_CHAT = \"NEW_CHAT\",\n}\n\nconst en: Locale = {\n UN_START_STATUS: \"Not Start\",\n RUNNING_STATUS: \"Running\",\n COMPLETED_STATUS: \"Completed\",\n NEW_CHAT: \"New chat\",\n};\n\nconst zh: Locale = {\n UN_START_STATUS: \"未开始\",\n RUNNING_STATUS: \"运行中\",\n COMPLETED_STATUS: \"已完成\",\n NEW_CHAT: \"新对话\",\n};\n\nexport const NS = \"bricks/ai-portal/goal-card-list\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useRef, useState } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Action, SimpleAction } from \"@next-bricks/basic/actions\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"../i18n.js\";\nimport { getContentEditable } from \"../../shared/getContentEditable.js\";\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nconst WrappedEasyopsAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nexport type GoalState = \"ready\" | \"working\" | \"completed\";\n\ninterface GoalMember {\n instanceId: string;\n}\n\nexport interface GoalItem {\n title: string;\n description?: string;\n state: GoalState;\n id: number;\n conversations?: number;\n child_target?: GoalItem[];\n parent_target?: GoalItem[];\n owner?: GoalMember;\n users?: GoalMember[];\n instanceId: string;\n offsetX?: number;\n}\n\ninterface GoalCardItemProps {\n goalItem: GoalItem;\n cardStyle?: React.CSSProperties;\n isActive?: boolean;\n onTitleChange?: (newTitle: string) => void;\n onStatusChange?: (newStatus: GoalState) => void;\n onNewChat?: () => void;\n onClick?: () => void;\n}\n\nconst iconMap = {\n ready: \"uncheck-status\",\n working: \"active-status\",\n completed: \"check-status\",\n};\n\nconst iconActions: Action[] = [\n {\n key: \"ready\",\n icon: {\n icon: \"uncheck-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.UN_START_STATUS),\n },\n {\n key: \"working\",\n icon: {\n icon: \"active-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.RUNNING_STATUS),\n },\n {\n key: \"completed\",\n icon: {\n icon: \"check-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.COMPLETED_STATUS),\n },\n];\n\nexport function GoalCardItem({\n goalItem,\n cardStyle,\n onStatusChange,\n onTitleChange,\n onClick,\n onNewChat,\n isActive,\n}: GoalCardItemProps) {\n const { state, id: serialNumber, title, conversations, owner } = goalItem;\n\n const handleStatusChange = (action: SimpleAction) => {\n onStatusChange?.(action.key as GoalState);\n };\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(() => {\n compositionRef.current = true;\n }, []);\n\n const handleCompositionEnd = useCallback(() => {\n compositionRef.current = false;\n }, []);\n\n const [editing, setEditing] = useState(false);\n\n const handleFocus = useCallback(() => {\n setEditing(true);\n }, []);\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLSpanElement>) => {\n setEditing(false);\n const value = e.currentTarget.textContent;\n if (value !== null && title !== value) {\n onTitleChange?.(value);\n }\n },\n [title, onTitleChange]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.currentTarget.blur();\n }\n },\n []\n );\n\n return (\n <div\n className={classNames(\n \"goal-item\",\n goalItem.state,\n { editing },\n { active: isActive }\n )}\n style={{\n paddingLeft: `${goalItem.offsetX}px`,\n ...cardStyle,\n }}\n onClick={onClick}\n >\n <div className=\"start\">\n <WrappedDropdownActions\n actions={iconActions}\n onActionClick={(e) => handleStatusChange(e.detail)}\n >\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"colored-common\"\n icon={iconMap[state]}\n onClick={(e) => e.stopPropagation()}\n />\n </WrappedDropdownActions>\n\n <span className=\"serial-number\">#{serialNumber}</span>\n <span\n className=\"title\"\n onClick={(e) => e.stopPropagation()}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n contentEditable={getContentEditable(true)}\n suppressContentEditableWarning\n >\n {title}\n </span>\n </div>\n <div className=\"end\">\n <div className=\"info\">\n <div className=\"message\">\n <WrappedIcon lib=\"easyops\" category=\"common\" icon=\"message\" />\n <span className=\"count\">{conversations || 0}</span>\n </div>\n <WrappedEasyopsAvatar\n nameOrInstanceId={owner?.instanceId}\n size=\"small\"\n />\n </div>\n <div className=\"operation\" onClick={(e) => e.stopPropagation()}>\n <WrappedButton\n className=\"new-chat\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onNewChat}\n >\n {t(K.NEW_CHAT)}\n </WrappedButton>\n </div>\n </div>\n </div>\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport CardItemStyleText from \"./CardItem/CardItem.shadow.css\";\nimport styleText from \"./styles.shadow.css\";\nimport { GoalCardItem, GoalItem, GoalState } from \"./CardItem/CardItem.js\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface GoalCardListProps {\n goalList?: GoalItem[];\n cardStyle?: React.CSSProperties;\n activeKey?: string;\n}\n\n/**\n * 构件 `ai-portal.goal-card-list`\n */\nexport\n@defineElement(\"ai-portal.goal-card-list\", {\n styleTexts: [styleText, CardItemStyleText],\n})\nclass GoalCardList extends ReactNextElement implements GoalCardListProps {\n @property({\n attribute: false,\n })\n accessor goalList: GoalItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor cardStyle: React.CSSProperties | undefined;\n\n @property()\n accessor activeKey: string | undefined;\n\n @event({ type: \"item.click\" })\n accessor #itemClickEvent!: EventEmitter<GoalItem>;\n #handleItemClick = (item: GoalItem) => {\n this.#itemClickEvent.emit(item);\n };\n\n @event({ type: \"item.status.change\" })\n accessor #itemStatusChangeEvent!: EventEmitter<GoalItem>;\n #handleItemStatusChange = (item: GoalItem) => {\n this.#itemStatusChangeEvent.emit(item);\n };\n\n @event({ type: \"item.title.change\" })\n accessor #itemTitleChangeEvent!: EventEmitter<GoalItem>;\n #handleTitleChange = (item: GoalItem) => {\n this.#itemTitleChangeEvent.emit(item);\n };\n\n @event({ type: \"item.new.chat\" })\n accessor #itemNewChatEvent!: EventEmitter<GoalItem>;\n #handleNewChat = (item: GoalItem) => {\n this.#itemNewChatEvent.emit(item);\n };\n\n render() {\n return (\n <GoalCardListComponent\n goalList={this.goalList}\n cardStyle={this.cardStyle}\n onTitleChange={this.#handleTitleChange}\n onStatusChange={this.#handleItemStatusChange}\n onItemClick={this.#handleItemClick}\n onNewChat={this.#handleNewChat}\n activeKey={this.activeKey}\n />\n );\n }\n}\n\ninterface GoalCardListComponentProps extends GoalCardListProps {\n onTitleChange?: (item: GoalItem) => void;\n onStatusChange?: (item: GoalItem) => void;\n onItemClick?: (item: GoalItem) => void;\n onNewChat?: (item: GoalItem) => void;\n}\n\nfunction GoalCardListComponent({\n goalList: _goalList,\n cardStyle,\n onTitleChange,\n onStatusChange,\n onItemClick,\n onNewChat,\n activeKey,\n}: GoalCardListComponentProps) {\n const [goalList, setGoalList] = useState(_goalList);\n\n useEffect(() => {\n setGoalList(_goalList);\n }, [_goalList]);\n\n const updateGoalItem = <T extends keyof GoalItem>(\n item: GoalItem,\n field: T,\n value: GoalItem[T],\n callback?: (updatedItem: GoalItem) => void\n ) => {\n const updatedItem = {\n ...item,\n [field]: value,\n };\n\n setGoalList(\n goalList?.map((goalItem) =>\n goalItem.instanceId === updatedItem.instanceId ? updatedItem : goalItem\n )\n );\n\n callback?.(updatedItem);\n };\n\n const handleTitleChange = (newTitle: string, item: GoalItem) => {\n updateGoalItem(item, \"title\", newTitle, onTitleChange);\n };\n\n const handleStatusChange = (newStatus: GoalState, item: GoalItem) => {\n updateGoalItem(item, \"state\", newStatus, onStatusChange);\n };\n\n if (!goalList) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <div className=\"goal-container\">\n {goalList?.map((item) => (\n <GoalCardItem\n key={item.instanceId}\n isActive={activeKey === item.instanceId}\n goalItem={item}\n cardStyle={cardStyle}\n onTitleChange={(v) => handleTitleChange(v, item)}\n onStatusChange={(v) => handleStatusChange(v, item)}\n onNewChat={() => onNewChat?.(item)}\n onClick={() => onItemClick?.(item)}\n />\n ))}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PROJECT_OVERALL = \"PROJECT_OVERALL\",\n}\n\nconst en: Locale = {\n PROJECT_OVERALL: \"Project overall\",\n};\n\nconst zh: Locale = {\n PROJECT_OVERALL: \"项目整体\",\n};\n\nexport const NS = \"bricks/ai-portal/project-conversations\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n, i18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectConversationsProps {\n list?: Conversation[];\n urlTemplate?: string;\n actions?: ActionType[];\n goals?: Goal[];\n}\n\nexport interface Conversation {\n conversationId: string;\n title: string;\n startTime: number;\n description?: string;\n goalInstanceId?: string;\n username?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Conversation;\n}\n\nexport interface Goal {\n instanceId: string;\n title: string;\n}\n\n/**\n * 构件 `ai-portal.project-conversations`\n */\nexport\n@defineElement(\"ai-portal.project-conversations\", {\n styleTexts: [styleText],\n})\nclass ProjectConversations\n extends ReactNextElement\n implements ProjectConversationsProps\n{\n @property({ attribute: false })\n accessor list: Conversation[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor goals: Goal[] | undefined;\n\n @event({ type: \"goal.click\" })\n accessor #goalClick!: EventEmitter<Conversation>;\n\n #handleGoalClick = (conversation: Conversation) => {\n this.#goalClick.emit(conversation);\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n render() {\n return (\n <ProjectConversationsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n goals={this.goals}\n onGoalClick={this.#handleGoalClick}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ProjectConversationsComponentProps extends ProjectConversationsProps {\n onGoalClick: (conversation: Conversation) => void;\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction ProjectConversationsComponent({\n list,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ProjectConversationsComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((item) => (\n <li className=\"item\" key={item.conversationId}>\n <ConversationLink\n conversation={item}\n urlTemplate={urlTemplate}\n actions={actions}\n goals={goals}\n onGoalClick={onGoalClick}\n onActionClick={onActionClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface ConversationLinkProps\n extends Pick<\n ProjectConversationsComponentProps,\n \"urlTemplate\" | \"actions\" | \"goals\" | \"onGoalClick\" | \"onActionClick\"\n > {\n conversation: Conversation;\n}\n\nfunction ConversationLink({\n conversation,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ConversationLinkProps) {\n const goalRef = useRef<HTMLDivElement>(null);\n const language = i18n.language.split(\"-\")[0];\n\n // <eo-link> handles click manually,\n // so we need to stop propagation and prevent default manually.\n useEffect(() => {\n const el = goalRef.current;\n if (!el) return;\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onGoalClick(conversation);\n };\n el.addEventListener(\"click\", handleClick);\n return () => {\n el.removeEventListener(\"click\", handleClick);\n };\n }, [conversation, onGoalClick]);\n\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, conversation)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"common\"\n icon=\"clock\"\n />\n <div className=\"title\">{conversation.title}</div>\n </div>\n {conversation.description && (\n <div className=\"description\">{conversation.description}</div>\n )}\n </div>\n {goals && (\n <div\n className={classNames(\"goal\", {\n global: !conversation.goalInstanceId,\n })}\n ref={goalRef}\n >\n {conversation.goalInstanceId\n ? goals.find((g) => g.instanceId === conversation.goalInstanceId)\n ?.title\n : t(K.PROJECT_OVERALL)}\n </div>\n )}\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={conversation.username}\n />\n <div className={`operations lang-${language}`}>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: conversation });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <div\n className=\"time\"\n title={\n humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.full\n )!\n }\n >\n {humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.relative\n )}\n </div>\n </div>\n </WrappedLink>\n );\n}\n","import React, { useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\n// import { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\n// import { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\n\n// initializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectKnowledgesProps {\n list?: Knowledge[];\n urlTemplate?: string;\n actions?: ActionType[];\n}\n\nexport interface Knowledge {\n instanceId: string;\n name: string;\n description?: string;\n time: number;\n user?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Knowledge;\n}\n\n/**\n * 构件 `ai-portal.project-knowledges`\n */\nexport\n@defineElement(\"ai-portal.project-knowledges\", {\n styleTexts: [styleText],\n})\nclass ProjectKnowledges\n extends ReactNextElement\n implements ProjectKnowledgesProps\n{\n @property({ attribute: false })\n accessor list: Knowledge[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n @event({ type: \"item.click\" })\n accessor #itemClick!: EventEmitter<Knowledge>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleItemClick = (item: Knowledge) => {\n this.#itemClick.emit(item);\n };\n\n render() {\n return (\n <ProjectKnowledgesComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n onActionClick={this.#handleActionClick}\n onItemClick={this.#handleItemClick}\n />\n );\n }\n}\n\ninterface ProjectKnowledgesComponentProps extends ProjectKnowledgesProps {\n onActionClick: (detail: ActionClickDetail) => void;\n onItemClick?: (item: Knowledge) => void;\n}\n\nfunction ProjectKnowledgesComponent({\n list,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: ProjectKnowledgesComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list?.map((item) => (\n <li className=\"item\" key={item.instanceId}>\n <KnowledgeLink\n knowledge={item}\n urlTemplate={urlTemplate}\n actions={actions}\n onActionClick={onActionClick}\n onItemClick={onItemClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface KnowledgeLinkProps\n extends Pick<\n ProjectKnowledgesComponentProps,\n \"urlTemplate\" | \"actions\" | \"onActionClick\" | \"onItemClick\"\n > {\n knowledge: Knowledge;\n}\n\nfunction KnowledgeLink({\n knowledge,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: KnowledgeLinkProps) {\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, knowledge)}\n onClick={() => onItemClick?.(knowledge)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n icon=\"lightbulb\"\n category=\"common\"\n />\n <span className=\"title\">{knowledge.name}</span>\n <WrappedIcon className=\"attachment\" lib=\"lucide\" icon=\"paperclip\" />\n </div>\n {knowledge.description && (\n <div className=\"description\">{knowledge.description}</div>\n )}\n </div>\n <div className=\"time\">\n {humanizeTime(knowledge.time * 1000, HumanizeTimeFormat.relative)}\n </div>\n <div className=\"operations\">\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: knowledge });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={knowledge.user}\n />\n </div>\n </WrappedLink>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n STARTED_A_CHAT = \"STARTED_A_CHAT\",\n CREATED_THIS_GOAL = \"CREATED_THIS_GOAL\",\n CHANGED_THE_GOAL_TITLE = \"CHANGED_THE_GOAL_TITLE\",\n CHANGED_THE_GOAL_DESCRIPTION = \"CHANGED_THE_GOAL_DESCRIPTION\",\n CHANGED_THE_GOAL = \"CHANGED_THE_GOAL\",\n DELETED_THIS_GOAL = \"DELETED_THIS_GOAL\",\n DECOMPOSED_THIS_GOAL = \"DECOMPOSED_THIS_GOAL\",\n SET_OWNER = \"SET_OWNER\",\n REMOVED_GOAL_PARTICIPANTS = \"REMOVED_GOAL_PARTICIPANTS\",\n ADDED_GOAL_PARTICIPANTS = \"ADDED_GOAL_PARTICIPANTS\",\n COMMENTED = \"COMMENTED\",\n COMMA = \"COMMA\",\n SEMICOLON = \"SEMICOLON\",\n}\n\nconst en: Locale = {\n STARTED_A_CHAT: \"started a chat\",\n CREATED_THIS_GOAL: \"created this goal\",\n CHANGED_THE_GOAL_TITLE: 'changed the goal title to \"{{ title }}\"',\n CHANGED_THE_GOAL_DESCRIPTION:\n 'changed the goal description to \"{{ description }}\"',\n CHANGED_THE_GOAL: \"changed the goal\",\n DELETED_THIS_GOAL: \"deleted this goal\",\n DECOMPOSED_THIS_GOAL: \"decomposed this goal to {{ count }} sub-goal: \",\n DECOMPOSED_THIS_GOAL_plural:\n \"decomposed this goal to {{ count }} sub-goals: \",\n SET_OWNER: \"set {{ user }} as the owner\",\n REMOVED_GOAL_PARTICIPANTS: \"removed a goal participant: \",\n REMOVED_GOAL_PARTICIPANTS_plural: \"removed {{ count }} goal participants: \",\n ADDED_GOAL_PARTICIPANTS: \"added a goal participant: \",\n ADDED_GOAL_PARTICIPANTS_plural: \"added {{ count }} goal participants: \",\n COMMENTED: \"commented\",\n COMMA: \", \",\n SEMICOLON: \"; \",\n};\n\nconst zh: Locale = {\n STARTED_A_CHAT: \"发起了对话\",\n CREATED_THIS_GOAL: \"创建了此目标\",\n CHANGED_THE_GOAL_TITLE: \"修改目标标题为 “{{ title }}”\",\n CHANGED_THE_GOAL_DESCRIPTION: \"修改目标描述为 “{{ description }}”\",\n CHANGED_THE_GOAL: \"修改了此目标\",\n DELETED_THIS_GOAL: \"删除了此目标\",\n DECOMPOSED_THIS_GOAL: \"将此目标分解为 {{ count }} 个子目标:\",\n DECOMPOSED_THIS_GOAL_plural: \"将此目标分解为 {{ count }} 个子目标:\",\n SET_OWNER: \"设定负责人为 {{ user }}\",\n REMOVED_GOAL_PARTICIPANTS: \"移除了目标参与成员:\",\n ADDED_GOAL_PARTICIPANTS: \"添加了目标参与成员:\",\n COMMENTED: \"评论\",\n COMMA: \",\",\n SEMICOLON: \";\",\n};\n\nexport const NS = \"bricks/ai-portal/activity-timeline\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { Activity, ActivityOfAlterUser } from \"./interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst { defineElement, property } = createDecorators();\n\nexport interface ActivityTimelineProps {\n list?: Activity[];\n chatUrlTemplate?: string;\n}\n\n/**\n * 构件 `ai-portal.activity-timeline`\n */\nexport\n@defineElement(\"ai-portal.activity-timeline\", {\n styleTexts: [styleText],\n})\nclass ActivityTimeline\n extends ReactNextElement\n implements ActivityTimelineProps\n{\n @property({ attribute: false })\n accessor list: Activity[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ActivityTimelineComponent\n list={this.list}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ActivityTimelineComponent({\n list,\n chatUrlTemplate,\n}: ActivityTimelineProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((activity, index) => (\n <li className=\"activity\" key={index}>\n <div className=\"guide-line\" />\n <div className=\"main\">\n <WrappedAvatar\n className=\"avatar\"\n nameOrInstanceId={activity.user_id}\n size=\"xs\"\n />\n <span className=\"action\">\n {activity.user_name}\n &nbsp;\n {activity.action_type === \"start_conversation\" ? (\n <>\n <span>{t(K.STARTED_A_CHAT)}</span>\n <WrappedLink\n className=\"conversation\"\n url={parseTemplate(chatUrlTemplate, activity)}\n target=\"_blank\"\n >\n {activity.metadata?.conversation_title}\n </WrappedLink>\n <WrappedIcon\n className=\"external-link-icon\"\n lib=\"lucide\"\n icon=\"external-link\"\n />\n </>\n ) : activity.action_type === \"create_goal\" ? (\n t(K.CREATED_THIS_GOAL)\n ) : activity.action_type === \"edit_goal\" ? (\n activity.metadata.after.title ? (\n t(K.CHANGED_THE_GOAL_TITLE, activity.metadata.after)\n ) : activity.metadata.after.description ? (\n t(K.CHANGED_THE_GOAL_DESCRIPTION, activity.metadata.after)\n ) : (\n t(K.CHANGED_THE_GOAL)\n )\n ) : activity.action_type === \"delete_goal\" ? (\n t(K.DELETED_THIS_GOAL)\n ) : activity.action_type === \"decompose_goals\" ? (\n `${t(K.DECOMPOSED_THIS_GOAL, {\n count: activity.metadata.sub_goals_count,\n })}${activity.metadata.sub_goals\n .map((g) => g.title)\n .join(t(K.COMMA))}`\n ) : activity.action_type === \"alter_owner\" ? (\n t(K.SET_OWNER, {\n user: activity.metadata.after.owner.user_name,\n })\n ) : activity.action_type === \"alter_user\" ? (\n getAlterPARTICIPANTsActivityDescription(activity)\n ) : activity.action_type === \"add_comment\" ? (\n t(K.COMMENTED)\n ) : (\n // Defense for future action types\n (activity as { action_type: string }).action_type\n )}\n </span>\n <span\n className=\"time\"\n title={humanizeTime(activity.time, HumanizeTimeFormat.full)!}\n >\n {humanizeTime(activity.time, HumanizeTimeFormat.relative)}\n </span>\n </div>\n {activity.action_type === \"add_comment\" && (\n <div className=\"comment\">{activity.metadata?.comment_content}</div>\n )}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction getAlterPARTICIPANTsActivityDescription(\n activity: ActivityOfAlterUser\n) {\n const removed: string[] = [];\n const added: string[] = [];\n const beforeUserIds = new Set(\n activity.metadata.before.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.after.users) {\n if (!beforeUserIds.has(user.user_name)) {\n added.push(user.user_name);\n }\n }\n const afterUserIds = new Set(\n activity.metadata.after.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.before.users) {\n if (!afterUserIds.has(user.user_name)) {\n removed.push(user.user_name);\n }\n }\n\n const descriptions: string[] = [];\n if (removed.length > 0) {\n descriptions.push(\n t(K.REMOVED_GOAL_PARTICIPANTS, { count: removed.length }) +\n removed.join(t(K.COMMA))\n );\n }\n if (added.length > 0) {\n descriptions.push(\n t(K.ADDED_GOAL_PARTICIPANTS, { count: added.length }) +\n added.join(t(K.COMMA))\n );\n }\n\n return descriptions.join(t(K.SEMICOLON));\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-input\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n\nconst ICON_STOP: GeneralIconProps = {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n}\n\nexport interface ChatInputEvents {\n \"message.submit\": CustomEvent<string>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onMessageSubmit: \"message.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatInput extends ReactNextElement implements ChatInputProps {\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ type: Boolean })\n accessor submitDisabled: boolean | undefined;\n\n @property({ type: Boolean })\n accessor supportsTerminate: boolean | undefined;\n\n @property({ type: Boolean })\n accessor terminating: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"terminate\" })\n accessor #terminate!: EventEmitter<void>;\n\n #handleTerminate = () => {\n this.#terminate.emit();\n };\n\n render() {\n return (\n <ChatInputComponent\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n submitDisabled={this.submitDisabled}\n supportsTerminate={this.supportsTerminate}\n terminating={this.terminating}\n onSubmit={this.#handleMessageSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onSubmit: (value: string) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n onSubmit,\n onTerminate,\n}: ChatInputComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [wrap, setWrap] = useState(false);\n\n useEffect(() => {\n if (autoFocus && !submitDisabled) {\n textareaRef.current?.focus();\n }\n }, [autoFocus, submitDisabled]);\n\n const onBeforeSubmit = useCallback(\n (value: string) => {\n if (submitDisabled || !value) {\n return;\n }\n\n onSubmit(value);\n valueRef.current = \"\";\n setValue(\"\");\n },\n [submitDisabled, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onBeforeSubmit(e.currentTarget.value);\n },\n [onBeforeSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onBeforeSubmit(valueRef.current);\n }, [onBeforeSubmit]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container) {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n const currentBlockSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (currentBlockSize > 52) {\n setWrap(true);\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (!value) {\n setWrap(false);\n }\n }, [value]);\n\n const handleContainerClick = useCallback((e: React.MouseEvent) => {\n for (const item of e.nativeEvent.composedPath()) {\n if (\n item instanceof HTMLTextAreaElement ||\n item instanceof HTMLButtonElement\n ) {\n return;\n }\n }\n textareaRef.current?.focus();\n }, []);\n\n return (\n <div className=\"container\" onClick={handleContainerClick}>\n <div className={classNames(\"box\", { wrap })}>\n <div className=\"input\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={1}\n maxRows={4}\n borderSize={0}\n paddingSize={16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n </div>\n <div className=\"toolbar\">\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" icon=\"arrow-up\" />\n </button>\n ) : (\n <>\n {terminating ? (\n <WrappedIconButton icon={ICON_LOADING} disabled />\n ) : (\n <WrappedIconButton\n icon={ICON_STOP}\n tooltip={t(K.TERMINATE_THE_TASK)}\n onClick={onTerminate}\n />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport Logo from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.elevo-logo`\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return (\n <img className=\"logo\" alt=\"Elevo\" src={Logo} width={95} height={28} />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WATCH_REPLAY = \"WATCH_REPLAY\",\n}\n\nconst en: Locale = {\n [K.WATCH_REPLAY]: \"Watch replay\",\n};\n\nconst zh: Locale = {\n [K.WATCH_REPLAY]: \"查看回放\",\n};\n\nexport const NS = \"bricks/ai-portal/show-case\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst bgClasses = [\"purple\", \"green\", \"pink\"];\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCaseProps {\n caseTitle?: string;\n summary?: string;\n url?: string;\n}\n\n/**\n * 构件 `ai-portal.show-case`\n */\nexport\n@defineElement(\"ai-portal.show-case\", {\n styleTexts: [styleText],\n})\nclass ShowCase extends ReactNextElement implements ShowCaseProps {\n @property()\n accessor caseTitle: string | undefined;\n\n @property()\n accessor summary: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n render() {\n return (\n <ShowCaseComponent\n caseTitle={this.caseTitle}\n summary={this.summary}\n url={this.url}\n />\n );\n }\n}\n\nfunction ShowCaseComponent({ caseTitle, summary, url }: ShowCaseProps) {\n return (\n <WrappedLink\n className={`link ${bgClasses[Math.floor(Math.random() * bgClasses.length)]}`}\n url={url}\n >\n <span className=\"title\">{caseTitle}</span>\n <span className=\"description\">{summary}</span>\n <span className=\"mask\" />\n <span className=\"button\">\n <WrappedIcon lib=\"lucide\" icon=\"play-circle\" />\n {t(K.WATCH_REPLAY)}\n </span>\n </WrappedLink>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;gap:16px;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.item:not(:last-child){margin-bottom:4px}.icon{font-size:18px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal{background:#f0fff8;border-radius:4px;font-weight:500;font-size:12px;color:#1dc897;line-height:20px;padding:2px 8px;white-space:nowrap}.goal.global{background:#e6f4ff;color:#1a7aff}.header{display:flex;align-items:center}.description{color:#595959;margin-top:6px;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);white-space:nowrap}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:right;width:100px}.operations.lang-zh{width:64px}.link.actions-active .time,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;padding:24px 54px 72px}:host([hidden]){display:none}:host::before{content:\"\";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-color:#f1f1f1;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px;margin-bottom:17px}.list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font:inherit;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:5px 0 5px 8px;margin-left:auto;display:flex;align-items:center;gap:2px}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto;margin-bottom:17px}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6;display:flex;align-items:center;justify-content:center;font-size:24px}.avatar img{width:100%;height:100%}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","locals","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedLegacyCruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","ForwardedCruiseCanvasComponent","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_CruiseCanvas_brand","WeakSet","_onShare","_V","_onTerminate","_W","_onSubmitFeedback","_X","_onFeedbackOnView","_Y","_onSwitchToChat","_Z","_onDetailChange","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showHumanActions","_init_extra_showHumanActions","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackAfterFailed","_init_extra_showFeedbackAfterFailed","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_previewUrlTemplate","_init_extra_previewUrlTemplate","_init_showCases","_init_extra_showCases","_init_exampleProjects","_init_extra_exampleProjects","_init_tryItOutUrl","_init_extra_tryItOutUrl","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","_init_detailChange","_init_extra_detailChange","_get_detailChange","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","taskId","task","jobs","replay","replayDelay","supports","showHiddenJobs","showHumanActions","showFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","Component","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","onDetailChange","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","_set_detailChange","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","hiddenElement","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","ChatBoxComponent","LegacyChatBoxComponent","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_handleEmployeeMention","ChatBox","_defineProperty","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","_init_employeeMention","_init_extra_employeeMention","employee","_get_employeeMention","disabled","placeholder","autoFocus","aiEmployees","setValue","_this$ref$current","getValue","_this$ref$current2","onSubmit","onEmployeeMention","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","selectionRef","useEffect","store","window","__elevo_try_it_out","content","useImperativeHandle","handleSubmit","useCallback","currentTarget","handleChange","selectionStart","selectionEnd","target","length","previousContent","slice","mentionIndex","lastIndexOf","mentionText","toLowerCase","position","textarea","index","document","createElement","setAttribute","body","appendChild","getMirroredStyle","textContent","span","rect","getBoundingClientRect","remove","top","left","getCaretPositionInTextarea","matchedEmployees","filter","employeeId","includes","name","range","start","end","actions","map","key","text","data","handleSubmitClick","Promise","resolve","then","_textareaRef$current","focus","mentionPrefix","useMemo","_textareaRef$current2","element","indexOf","mentionOverlay","_textareaRef$current3","prefix","measureContent","getContentRectInTextarea","width","height","handleMention","action","mention","newValue","handleKeyDown","preventDefault","stopPropagation","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","currentStart","currentEnd","Math","min","max","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","desiredSelectionRef","onChange","onKeyDown","onClick","lib","icon","style","checkedKeys","_ChatBox2","_set_messageSubmit","_set_employeeMention","styleTexts","styleText","delegatesFocus","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","xField","yField","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","SIDEBAR_ICON","WrappedElevoLogo","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleActionClick","_handleLegacyActionClick","_handleProjectActionClick","_handleAddProject","ElevoSidebar","_init_legacy","_init_extra_legacy","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_bordered","_init_extra_bordered","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_newChatLinkWhenCollapsed","_init_extra_newChatLinkWhenCollapsed","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_projectActiveId","_init_extra_projectActiveId","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_links","_init_extra_links","_init_logout","_init_extra_logout","_get_logout","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_projectActionClick","_init_extra_projectActionClick","_get_projectActionClick","_init_addProject","_init_extra_addProject","_get_addProject","legacy","userInstanceId","behavior","bordered","logoUrl","newChatUrl","newChatLinkWhenCollapsed","historyActiveId","historyUrlTemplate","historyActions","projectActiveId","projectUrlTemplate","projectActions","links","pullHistory","delay","setTimeout","pull","close","removeProject","projectId","addProject","project","_classPrivateFieldGet7","moveConversation","_classPrivateFieldGet8","_classPrivateFieldGet9","onLogout","onLegacyActionClick","onProjectActionClick","onAddProject","_ref2","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","LOGOUT","SWITCH_LANGUAGE","historyRef","_historyRef$current","_historyRef$current2","_historyRef$current2$","_historyRef$current3","_historyRef$current3$","_historyRef$current4","_historyRef$current4$","classNames","WrappedIconButton","variant","WrappedLink","url","NEW_CHAT","link","title","LegacyChatHistory","activeId","urlTemplate","onHistoryClick","ChatHistory","WrappedDropdownActions","async","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_actionClick","_set_projectActionClick","_set_addProject","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","tooltip","IconButtonComponent","btn","_IconButton2","ALL","EXPLORE_EXCELLENT_CASES","WrappedShowCase","WrappedTabList","onTabClick","_ShowCases","ShowCases","_init_list","_init_extra_list","list","ShowCasesComponent","groups","Set","item","scenario","activeGroup","setActiveGroup","filteredList","tabs","group","activeTab","caseTitle","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","Map","servers","_McpTools","McpTools","_init_withContainer","_init_extra_withContainer","withContainer","McpToolsComponent","groupMap","platformMap","forEach","groupName","server","replaceAll","get","set","platform","entries","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","node","_ref6","items","_item$icon","fallback","description","_McpTools2","ForwardedLegacyChatStreamComponent","LegacyChatStreamComponent","ForwardedChatStreamComponent","ChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_ChatStream2","AI_EMPLOYEES","UNTITLED","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","_init_urlTemplate","_init_extra_urlTemplate","industries","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","role","clickable","parseTemplate","avatar","src","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","customElements","define","createProviderClass","_PageContainer","PageContainer","_init_pageTitle","_init_extra_pageTitle","_init_breadcrumbs","_init_extra_breadcrumbs","pageTitle","breadcrumbs","PageContainerComponent","getRuntime","applyPageTitle","_PageContainer2","CHATS","GOALS","TAB_ID_CHATS","TABS","_ProjectSummary","ProjectSummary","_init_chatList","_init_extra_chatList","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","chatList","chatUrlTemplate","ProjectSummaryComponent","setActiveTab","humanizeTime","startTime","HumanizeTimeFormat","relative","spinning","_ProjectSummary2","_TabList","_TabList_brand","_handleTabClick","TabList","_init_tabs","_init_extra_tabs","_init_activeTab","_init_extra_activeTab","_init_tabClick","_init_extra_tabClick","tab","_get_tabClick","TabListComponent","part","active","_TabList2","_set_tabClick","PLEASE_SELECT","SEARCH_PLACEHOLDER","SEARCH_NO_DATA","WrappedPopover","onVisibleChange","onBeforeVisibleChange","WrappedLoadingContainer","WrappedMenu","WrappedMenuItem","WrappedInput","onValueChange","_DropdownSelect","_DropdownSelect_brand","_handleChange","DropdownSelect","_init_options","_init_extra_options","_init_labelMaxWidth","_init_extra_labelMaxWidth","_init_loading","_init_extra_loading","_init_searchPlaceholder","_init_extra_searchPlaceholder","_init_dropdownContentStyle","_init_extra_dropdownContentStyle","_init_dropdownMaxWidth","_init_extra_dropdownMaxWidth","_init_showSearch","_init_extra_showSearch","_init_changeEvent","_init_extra_changeEvent","option","_get_changeEvent","options","labelMaxWidth","loading","searchPlaceholder","dropdownContentStyle","dropdownMaxWidth","showSearch","DropdownSelectComponent","_value","_options","open","setOpen","q","setQ","setOptions","activeOption","opt","filteredOptions","ops","handleBeforeVisibleChange","handleSearchChange","debounce","evt","placement","trigger","arrow","distance","slot","maxWidth","undefined","_DropdownSelect2","_set_changeEvent","OPERATOR_MAP","workspace","entity","params","Error","http","post","model","filters","query","Object","flatMap","condition","op","operator","dims","measures","fields","field","function","args","expression","InstanceApi_postSearchV3","InstanceApi_getDetail","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","WrappedPageTitle","WrappedMainView","WrappedNarrowView","_PreviewContainer","_rootId","PreviewContainer","_init_source","_init_extra_source","uniqueId","source","Suspense","styles","PreviewContainerComponent","rootId","parsedResultPromise","worker","getRemoteTsxParserWorker","parse","catch","error","console","parsedResult","use","convertedResultPromise","convertTsx","expanded","convertedResult","viewTitle","getViewTitle","RenderComponent","rootRef","container","portal","createPortal","root","unstable_createRoot","supportsUseChildren","unmount","_rootRef$current","brick","context","functions","templates","main","_PreviewContainer2","WrapperButton","_ActionsButtons","_ActionsButtons_brand","ActionsButtons","_init_items","_init_extra_items","_init_multiple","_init_extra_multiple","_this$items","newItems","multiple","customEvent","CustomEvent","actives","dispatchEvent","ActionsButtonsComponent","filteredItems","hidden","rest","themeVariant","_ActionsButtons2","UN_START_STATUS","RUNNING_STATUS","COMPLETED_STATUS","WrappedButton","iconMap","ready","working","completed","iconActions","category","GoalCardItem","goalItem","cardStyle","onStatusChange","onTitleChange","onNewChat","isActive","state","serialNumber","conversations","owner","compositionRef","handleCompositionStart","handleCompositionEnd","editing","setEditing","handleFocus","handleBlur","blur","paddingLeft","offsetX","handleStatusChange","onFocus","onBlur","onCompositionStart","onCompositionEnd","contentEditable","getContentEditable","suppressContentEditableWarning","instanceId","_GoalCardList","_GoalCardList_brand","_handleItemClick","_handleItemStatusChange","_handleTitleChange","_handleNewChat","GoalCardList","_init_goalList","_init_extra_goalList","_init_cardStyle","_init_extra_cardStyle","_init_activeKey","_init_extra_activeKey","_init_itemClickEvent","_init_extra_itemClickEvent","_get_itemClickEvent","_init_itemStatusChangeEvent","_init_extra_itemStatusChangeEvent","_get_itemStatusChangeEvent","_init_itemTitleChangeEvent","_init_extra_itemTitleChangeEvent","_get_itemTitleChangeEvent","_init_itemNewChatEvent","_init_extra_itemNewChatEvent","_get_itemNewChatEvent","goalList","activeKey","GoalCardListComponent","onItemClick","_goalList","setGoalList","updateGoalItem","callback","updatedItem","handleTitleChange","newTitle","newStatus","_GoalCardList2","_set_itemClickEvent","_set_itemStatusChangeEvent","_set_itemTitleChangeEvent","_set_itemNewChatEvent","CardItemStyleText","PROJECT_OVERALL","WrappedAvatar","WrappedMiniActions","_ProjectConversations","_ProjectConversations_brand","_handleGoalClick","ProjectConversations","_init_actions","_init_extra_actions","_init_goals","_init_extra_goals","_init_goalClick","_init_extra_goalClick","conversation","_get_goalClick","goals","ProjectConversationsComponent","onGoalClick","ConversationLink","_goals$find","goalRef","el","handleClick","addEventListener","removeEventListener","actionsVisible","setActionsVisible","global","goalInstanceId","g","username","full","_ProjectConversations2","_set_goalClick","_ProjectKnowledges","_ProjectKnowledges_brand","ProjectKnowledges","_init_itemClick","_init_extra_itemClick","_get_itemClick","ProjectKnowledgesComponent","KnowledgeLink","knowledge","time","user","_ProjectKnowledges2","_set_itemClick","STARTED_A_CHAT","CREATED_THIS_GOAL","CHANGED_THE_GOAL_TITLE","CHANGED_THE_GOAL_DESCRIPTION","CHANGED_THE_GOAL","DELETED_THIS_GOAL","DECOMPOSED_THIS_GOAL","DECOMPOSED_THIS_GOAL_plural","SET_OWNER","REMOVED_GOAL_PARTICIPANTS","REMOVED_GOAL_PARTICIPANTS_plural","ADDED_GOAL_PARTICIPANTS","ADDED_GOAL_PARTICIPANTS_plural","COMMENTED","COMMA","SEMICOLON","_ActivityTimeline","ActivityTimeline","ActivityTimelineComponent","activity","_activity$metadata","_activity$metadata2","user_id","user_name","action_type","metadata","conversation_title","after","count","sub_goals_count","sub_goals","join","removed","added","beforeUserIds","before","users","afterUserIds","descriptions","getAlterPARTICIPANTsActivityDescription","comment_content","_ActivityTimeline2","TERMINATE_THE_TASK","ICON_LOADING","ICON_STOP","_ChatInput","_ChatInput_brand","_handleTerminate","ChatInput","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_terminate","_init_extra_terminate","_get_terminate","submitDisabled","supportsTerminate","terminating","ChatInputComponent","wrap","setWrap","onBeforeSubmit","observer","ResizeObserver","entry","contentBoxSize","blockSize","contentRect","observe","disconnect","handleContainerClick","composedPath","HTMLTextAreaElement","HTMLButtonElement","maxRows","borderSize","_ChatInput2","_set_terminate","_ElevoLogo","ElevoLogo","alt","Logo","_ElevoLogo2","WATCH_REPLAY","bgClasses","_ShowCase","ShowCase","_init_caseTitle","_init_extra_caseTitle","_init_summary","_init_extra_summary","_init_url","_init_extra_url","ShowCaseComponent","floor","random","_ShowCase2"],"sourceRoot":""}