@next-bricks/ai-portal 0.59.2 → 0.59.4

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 (39) hide show
  1. package/dist/bricks.json +25 -25
  2. package/dist/chunks/2232.02cd2bbc.js +2 -0
  3. package/dist/chunks/2232.02cd2bbc.js.map +1 -0
  4. package/dist/chunks/2621.2e553d56.js +2 -0
  5. package/dist/chunks/2621.2e553d56.js.map +1 -0
  6. package/dist/chunks/{5712.a63bddd8.js → 5712.c566ad78.js} +2 -2
  7. package/dist/chunks/{5712.a63bddd8.js.map → 5712.c566ad78.js.map} +1 -1
  8. package/dist/chunks/{9496.633e2efa.js → 9496.1d7ebb7f.js} +2 -2
  9. package/dist/chunks/9496.1d7ebb7f.js.map +1 -0
  10. package/dist/chunks/chat-box.991e397f.js +3 -0
  11. package/dist/chunks/chat-box.991e397f.js.LICENSE.txt +1 -0
  12. package/dist/chunks/chat-box.991e397f.js.map +1 -0
  13. package/dist/chunks/{main.9309c699.js → main.2a8a7df5.js} +2 -2
  14. package/dist/chunks/{main.9309c699.js.map → main.2a8a7df5.js.map} +1 -1
  15. package/dist/chunks/notice-list.f15560fb.js +3 -0
  16. package/dist/chunks/notice-list.f15560fb.js.map +1 -0
  17. package/dist/chunks/set-chat-command.367b9c88.js.map +1 -1
  18. package/dist/examples.json +21 -21
  19. package/dist/{index.457a283c.js → index.8eb595d7.js} +2 -2
  20. package/dist/{index.457a283c.js.map → index.8eb595d7.js.map} +1 -1
  21. package/dist/manifest.json +227 -233
  22. package/dist/types.json +545 -565
  23. package/dist-types/chat-box/index.d.ts +0 -1
  24. package/dist-types/data-providers/set-chat-command.d.ts +1 -1
  25. package/dist-types/shared/ReadableCommand/ReadableCommand.d.ts +1 -0
  26. package/dist-types/shared/interfaces.d.ts +2 -1
  27. package/docs/notice-dropdown.md +13 -13
  28. package/docs/notice-list.md +5 -5
  29. package/package.json +2 -2
  30. package/dist/chunks/2232.b162e41f.js +0 -2
  31. package/dist/chunks/2232.b162e41f.js.map +0 -1
  32. package/dist/chunks/2621.0d56009c.js +0 -2
  33. package/dist/chunks/2621.0d56009c.js.map +0 -1
  34. package/dist/chunks/9496.633e2efa.js.map +0 -1
  35. package/dist/chunks/chat-box.5ba0e969.js +0 -2
  36. package/dist/chunks/chat-box.5ba0e969.js.map +0 -1
  37. package/dist/chunks/notice-list.4eda2f51.js +0 -3
  38. package/dist/chunks/notice-list.4eda2f51.js.map +0 -1
  39. /package/dist/chunks/{notice-list.4eda2f51.js.LICENSE.txt → notice-list.f15560fb.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/2621.0d56009c.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/notice-dropdown/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/elevo-card/styles.shadow.css","webpack:///./src/blank-state/styles.shadow.css","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/notice-list/styles.shadow.css","webpack:///./src/project-knowledges/styles.shadow.css","webpack:///./src/flow-tabs/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/cruise-canvas/index.tsx","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectsInTextarea.ts","webpack:///./src/chat-box/i18n.ts","webpack:///./src/data-providers/set-chat-command.ts","webpack:///./src/chat-box/bricks.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/useHasAssignedNodes.ts","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/tab-list/index.tsx","webpack:///./src/dropdown-select/i18n.ts","webpack:///./src/dropdown-select/index.tsx","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/shared/getContentEditable.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/data-providers/call-tool.ts","webpack:///./src/blank-state/index.tsx","webpack:///./src/sticky-container/index.tsx","webpack:///./src/elevo-card/index.tsx","webpack:///./src/flow-tabs/drawBg.ts","webpack:///./src/flow-tabs/index.tsx","webpack:///./src/stage-flow/i18n.ts","webpack:///./src/stage-flow/index.tsx","webpack:///./src/running-flow/images/stage.svg","webpack:///./src/running-flow/index.tsx","webpack:///./src/running-flow/formatDuration.ts","webpack:///./src/notice-dropdown/i18n.ts","webpack:///./src/notice-dropdown/index.tsx","webpack:///./src/notice-list/i18n.ts","webpack:///./src/notice-list/index.tsx","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/preview-container/styles.module.css","webpack:///./src/running-flow/styles.shadow.css","webpack:///./src/stage-flow/styles.shadow.css","webpack:///./src/project-conversations/styles.shadow.css","webpack:///./src/sticky-container/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\";\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:inline-block}:host([hidden]){display:none}.popover::part(popup){border-radius:12px}.notice-dropdown-content{max-width:500px;border-radius:12px;display:flex;flex-direction:column;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover}.header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}.title{font-size:18px;font-weight:500;color:var(--text-color-title)}.close-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:#000}ul{list-style:none;margin:0;padding:4px}.content{flex:1;max-height:500px;overflow-y:auto}.link{display:block}.link::part(link){display:flex;align-items:start;gap:12px;padding:10px 16px}.link:hover::part(link):hover{background-color:rgba(0,0,0,0.04);border-radius:8px}.link:last-child{border-bottom:none}.icon-wrapper{position:relative;flex-shrink:0;width:18px;height:18px;padding:2px 0;display:flex;align-items:center;justify-content:center;font-size:18px}.message-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.primary-text{font-size:14px;font-weight:400;line-height:20px;color:var(--text-color-title)}.secondary-text{color:rgba(0,0,0,0.45)}.empty-state{padding:60px 20px;text-align:center;font-size:14px;color:var(--text-color-secondary)}.footer{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:9px 10px;box-shadow:0px -12px 16px -8px rgba(0,0,0,0.08);border-radius:0px 0px 12px 12px}.footer .footer-button::part(button){color:var(--text-color-secondary)}.footer .footer-button::part(button):hover{color:var(--text-color-default)!important}`, \"\"]);\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{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.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);border-color:#c9d7ff}.icon{font-size:16px;margin-right:4px}.remove{padding:1px;font-size:14px;margin-left:10px}`, \"\"]);\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}.activity:first-child:last-child .guide-line::before{height:0}.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}.card{display:block}.card::part(link){display:flex;flex-direction:column;gap:12px;background:rgba(255,255,255,0.6);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.04);border-radius:12px;border:1px solid #fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px;color:#262626}.card:not(.clickable)::part(link){cursor:auto}.card::part(link):hover{background:#fff}.header,\n.body,\n.footer{width:100%}.header{display:flex;gap:12px}.heading{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.avatar{width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,0,0,0.15);font-size:24px;display:flex;align-items:center;justify-content:center}.title{font-weight:500;font-size:16px;color:#262626;line-height:22px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{margin:-8px -8px 0 0}.body{font-size:12px;color:rgba(0,0,0,0.45);line-height:17px;height:51px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.footer{align-items:center;justify-content:flex-end;gap:8px}.footer:not([hidden]){display:flex}`, \"\"]);\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;gap:26px}:host([hidden]){display:none}p{color:rgba(0,0,0,0.45);margin:0}`, \"\"]);\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;flex-wrap:wrap;gap:32px;row-gap:10px;font-size:16px}.tabs a{color:rgba(38,38,38,0.65);cursor:pointer;padding:0 0 4px;display:block;position:relative}.tabs .active a{color:#262626;font-weight:500}.tabs .active a::after{content:\"\";position:absolute;bottom:0;left:0;right:0;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}.toolbar{display:flex;gap:8px;align-items:center;padding:12px 16px}.toolbar .read-link::part(button){padding:4px 8px}.all-checkbox,\n.item-checkbox{margin-right:10px}.all-checkbox::part(checkbox-option):hover,\n.item-checkbox::part(checkbox-option):hover{background-color:transparent}ul{list-style:none;margin:0;padding:0}.message-item-link{display:block}.message-item-link::part(link){display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;color:var(--text-color-title);border-bottom:1px solid rgba(0,0,0,0.1);transition:all 0.2s}.message-item-link.has-read::part(link){opacity:0.65}.message-item-link::part(link):hover{background-color:rgba(0,0,0,0.04)}.left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.left .icon-wrapper{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:24px}.left .title{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--text-color-title);line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right{flex-shrink:0;display:flex;align-items:center}.right .message-time{flex-shrink:0;line-height:22px;color:rgba(0,0,0,0.45)}.empty-state{display:flex;align-items:center;justify-content:center;padding:60px 20px;font-size:14px;color:var(--text-color-secondary)}`, \"\"]);\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:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative}.bg{position:absolute;top:0;left:0;z-index:-1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header{display:flex;align-items:center;justify-content:space-between}.tabs{list-style:none;padding:0;margin:0;display:flex;min-width:0}.tabs .tab{padding:0 18px;min-width:0}.tabs a{display:block;padding:9px 10px;color:rgba(0,0,0,0.55);line-height:20px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.tabs .active a{font-weight:500;color:#262626}.body{padding:23px 27px;overflow-x:auto}.toolbar{display:flex;align-items:center;gap:8px;white-space:nowrap}`, \"\"]);\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\";\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}h2{font-weight:500;margin:0;font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:17px}.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}.sticky-tabs{margin:0 -24px;padding:0 24px 10px}.non-sticky-tabs{padding:0 0 10px}`, \"\"]);\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","// 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 \"./interfaces.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n UploadOptions,\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 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 separateInstructions?: boolean;\n uploadOptions?: UploadOptions;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\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 /** 是否启用回放。仅初始设置有效。 */\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 @property({ type: Boolean })\n accessor separateInstructions: boolean | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | 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 return (\n <ForwardedCruiseCanvasComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\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 separateInstructions={this.separateInstructions}\n uploadOptions={this.uploadOptions}\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 getContentRectsInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n): DOMRect[] {\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 fullRect = span.getBoundingClientRect();\n span.remove();\n\n if (measureContent.length <= 1) {\n return [fullRect];\n }\n\n const leadingChar = measureContent[0];\n const leadingSpan = document.createElement(\"span\");\n leadingSpan.textContent = leadingChar;\n hiddenElement.appendChild(leadingSpan);\n const leadingRect = leadingSpan.getBoundingClientRect();\n leadingSpan.remove();\n\n hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;\n const trailingChar = measureContent[measureContent.length - 1];\n const trailingSpan = document.createElement(\"span\");\n trailingSpan.textContent = trailingChar;\n hiddenElement.appendChild(trailingSpan);\n const trailingRect = trailingSpan.getBoundingClientRect();\n trailingSpan.remove();\n\n if (leadingRect.top === trailingRect.top) {\n return [fullRect];\n }\n\n const rects: DOMRect[] = [];\n\n // Leading rect\n rects.push(\n new DOMRect(\n leadingRect.left,\n leadingRect.top,\n fullRect.right - leadingRect.left,\n leadingRect.bottom - leadingRect.top\n )\n );\n\n // Middle rect\n const height = trailingRect.top - leadingRect.bottom;\n if (height >= 10) {\n rects.push(\n new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height)\n );\n }\n\n // Trailing rect\n rects.push(\n new DOMRect(\n fullRect.left,\n trailingRect.top,\n trailingRect.right - fullRect.left,\n trailingRect.bottom - trailingRect.top\n )\n );\n\n return rects;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n COMMAND_TIPS = \"COMMAND_TIPS\",\n SEARCH_COMMANDS_TIPS = \"SEARCH_COMMANDS_TIPS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n [K.COMMAND_TIPS]: \"‘@’ AI Employee | ‘/’ Command\",\n [K.SEARCH_COMMANDS_TIPS]:\n \"Showing up to {{count}} items, type keywords to search\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n [K.COMMAND_TIPS]: \"‘@’ 数字人 | ‘/’ 命令\",\n [K.SEARCH_COMMANDS_TIPS]: \"最多显示 {{count}} 条数据,输入关键字搜索\",\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 { createProviderClass } from \"@next-core/utils/general\";\nimport type { CommandPayload } from \"../shared/interfaces.js\";\n\nexport interface ChatCommand {\n command: string;\n payload: CommandPayload;\n}\n\nlet chatCommand: ChatCommand | null = null;\n\nexport function setChatCommand(command: ChatCommand | null): void {\n chatCommand = command;\n}\n\nexport function getChatCommand(): ChatCommand | null {\n return chatCommand;\n}\n\ncustomElements.define(\n \"ai-portal.set-chat-command\",\n createProviderClass(setChatCommand)\n);\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n} from \"@next-bricks/basic/actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedActions = wrapBrick<\n EoActions,\n ActionsProps & { activeKeys?: (string | number)[]; footerTips?: string },\n ActionsEvents,\n ActionsEventsMapping\n>(\"eo-actions\", {\n onActionClick: \"action.click\",\n onItemDragEnd: \"item.drag.end\",\n onItemDragStart: \"item.drag.start\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectsInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { SimpleAction } from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n getChatCommand,\n setChatCommand,\n} from \"../data-providers/set-chat-command.js\";\nimport type {\n ChatPayload,\n CommandPayload,\n UploadOptions,\n} from \"../shared/interfaces.js\";\nimport {\n UploadButton,\n type UploadButtonRef,\n} from \"../shared/FileUpload/UploadButton.js\";\nimport { UploadedFiles } from \"../shared/FileUpload/UploadedFiles.js\";\nimport UploadedFilesStyleText from \"../shared/FileUpload/UploadedFiles.shadow.css\";\nimport { WrappedActions, WrappedIcon } from \"./bricks.js\";\nimport { useFilesUploading } from \"../shared/useFilesUploading.js\";\nimport GlobalDragOverlay from \"../shared/FileUpload/GlobalDragOverlay.js\";\n\ninitializeI18n(NS, locales);\n\nconst MAX_SHOWN_COMMANDS = 10;\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 commands?: Command[];\n uploadOptions?: UploadOptions;\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 focusOnInput: () => void;\n}\n\nexport interface Command {\n label: string;\n value: string;\n groupKey?: string;\n groupLabel?: string;\n subCommands?: Command[];\n payload?: CommandPayload;\n}\n\ntype ActionWithSubCommands = SimpleAction & {\n key: string | number;\n subCommands?: Command[];\n payload?: CommandPayload;\n};\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText, UploadedFilesStyleText],\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 @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\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: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\n };\n\n @event({ type: \"command.select\" })\n accessor #commandSelect!: EventEmitter<CommandPayload | null>;\n\n #handleCommandSelect = (command: CommandPayload | null) => {\n this.#commandSelect.emit(command);\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 @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\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 commands={this.commands}\n uploadOptions={this.uploadOptions}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onCommandSelect={this.#handleCommandSelect}\n root={this}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n root: HTMLElement;\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onCommandSelect: (command: CommandPayload | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n style: React.CSSProperties;\n range: {\n start: number;\n end: number;\n };\n actions: ActionWithSubCommands[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n root,\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands: propCommands,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\n onCommandSelect,\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 [mentionOverlay, setMentionOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const [commandPrefix, setCommandPrefix] = useState(\"/\");\n const [commands, setCommands] = useState<Command[] | undefined>(propCommands);\n const [command, setCommand] = useState<CommandPayload | null>(null);\n const [mentioned, setMentioned] = useState<string | null>(null);\n const [commandPopover, setCommandPopover] = useState<MentionPopover | null>(\n null\n );\n const [commandOverlay, setCommandOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [commandText, setCommandText] = useState(\"\");\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n useEffect(() => {\n setCommands(propCommands);\n }, [propCommands]);\n\n const uploadEnabled = uploadOptions?.enabled;\n const uploadAccept = uploadOptions?.accept;\n const {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\n } = useFilesUploading(uploadOptions);\n\n useEffect(() => {\n if (!uploadEnabled) {\n resetFiles();\n }\n }, [uploadEnabled, resetFiles]);\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 focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const sendDisabled =\n !value ||\n !allFilesDone ||\n (!!mentionedText && value.length <= mentionedText.length) ||\n (!!commandText && value.length <= commandText.length);\n\n const doSubmit = useCallback(\n (value: string) => {\n if (sendDisabled) {\n return;\n }\n const content = value.slice(commandText.length || mentionedText.length);\n onMessageSubmit(content);\n onChatSubmit({\n content,\n files: fileInfos,\n cmd: command,\n aiEmployeeId: mentioned,\n });\n },\n [\n sendDisabled,\n commandText.length,\n mentionedText.length,\n command,\n fileInfos,\n mentioned,\n onChatSubmit,\n onMessageSubmit,\n ]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n doSubmit(e.currentTarget.value);\n }\n },\n [doSubmit]\n );\n\n const showMentionSuggestions = useCallback(\n (textarea: HTMLTextAreaElement, employees: AIEmployee[] | undefined) => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n employees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"@\")) {\n const mentionText = previousContent.slice(1).toLowerCase();\n const matchedEmployees = employees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, MAX_SHOWN_COMMANDS);\n if (matchedEmployees.length > 0) {\n const position = getCaretPositionInTextarea(\n textarea,\n selectionStart\n );\n const textareaRect = textarea.getBoundingClientRect();\n setMentionPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, 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 true;\n }\n }\n }\n setMentionPopover(null);\n },\n []\n );\n\n const showCommandSuggestions = useCallback(\n (\n textarea: HTMLTextAreaElement,\n commandList: Command[] | undefined,\n prefix: string\n ) => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n commandList?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(prefix)) {\n const searchText = previousContent.slice(prefix.length).toLowerCase();\n const matchedCommands = commandList\n .filter(\n (command) =>\n command.label.toLowerCase().includes(searchText) ||\n command.groupLabel?.toLowerCase().includes(searchText)\n )\n .slice(0, MAX_SHOWN_COMMANDS);\n if (matchedCommands.length > 0) {\n const popover = getCommandPopover(\n matchedCommands,\n textarea,\n selectionStart\n );\n setCommandPopover(popover);\n setActiveActionIndex(0);\n return true;\n }\n }\n }\n setCommandPopover(null);\n },\n []\n );\n\n // Show mention/commands suggestions once candidates are loaded\n const mentionInitializedRef = useRef(false);\n useEffect(() => {\n const textarea = textareaRef.current?.element;\n if (\n mentionInitializedRef.current ||\n !aiEmployees ||\n !textarea ||\n document.activeElement !== root ||\n root.shadowRoot?.activeElement !== textarea\n ) {\n return;\n }\n mentionInitializedRef.current = true;\n showMentionSuggestions(textarea, aiEmployees);\n }, [aiEmployees, root, showMentionSuggestions]);\n\n const commandsInitializedRef = useRef(false);\n useEffect(() => {\n const textarea = textareaRef.current?.element;\n if (\n commandsInitializedRef.current ||\n !propCommands ||\n !textarea ||\n document.activeElement !== root ||\n root.shadowRoot?.activeElement !== textarea\n ) {\n return;\n }\n commandsInitializedRef.current = true;\n showCommandSuggestions(textarea, propCommands, \"/\");\n }, [propCommands, root, showCommandSuggestions]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (showMentionSuggestions(e.target, aiEmployees)) {\n return;\n }\n showCommandSuggestions(e.target, commands, commandPrefix);\n },\n [\n aiEmployees,\n commandPrefix,\n commands,\n showCommandSuggestions,\n showMentionSuggestions,\n ]\n );\n\n useEffect(() => {\n if (mentionedText && !value.startsWith(mentionedText)) {\n setMentionedText(\"\");\n setMentioned(null);\n }\n }, [mentionedText, value]);\n\n useEffect(() => {\n if (\n !value.startsWith(commandPrefix) ||\n (commandText && !value.startsWith(commandText))\n ) {\n setCommandText(\"\");\n setCommand(null);\n onCommandSelect(null);\n setCommands(propCommands);\n setCommandPrefix(\"/\");\n setCommandPopover(null);\n }\n }, [commandPrefix, commandText, onCommandSelect, value, propCommands]);\n\n const handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit]);\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 useEffect(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n setMentionOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n setMentionOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [mentionedText, hasFiles]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (!commandText || !element) {\n setCommandOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandText.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [commandText, hasFiles]);\n\n const chatCommand = useMemo(() => {\n const command = getChatCommand();\n if (command) {\n setChatCommand(null);\n }\n return command;\n }, []);\n\n useEffect(() => {\n if (chatCommand) {\n setCommand(chatCommand.payload);\n onCommandSelect(chatCommand.payload);\n }\n }, [chatCommand, onCommandSelect]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (chatCommand && element) {\n const commandStr = `/${chatCommand.command} `;\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandStr.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n valueRef.current = commandStr;\n selectionRef.current = {\n start: commandStr.length,\n end: commandStr.length,\n };\n setValue(commandStr);\n setCommandText(commandStr);\n }\n }, [chatCommand]);\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 setMentioned((action as { data?: AIEmployee }).data!.employeeId);\n textareaRef.current?.focus();\n },\n [mentionPopover]\n );\n\n const handleSelectCommand = useCallback(\n (action: ActionWithSubCommands) => {\n const hasSubCommands =\n action.subCommands && action.subCommands.length > 0;\n const command = `${commandPrefix.replace(/ $/, \": \")}${action.text} `;\n const prefix = `${valueRef.current.slice(0, commandPopover!.range.start)}${command}`;\n const newValue = `${prefix}${valueRef.current.slice(commandPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n if (hasSubCommands) {\n if (action.payload) {\n setCommandText(command);\n setCommand(action.payload);\n }\n setCommands(action.subCommands);\n setCommandPrefix(command);\n // Wait for the textarea to update\n setTimeout(() => {\n const popover = getCommandPopover(\n action.subCommands!.slice(0, MAX_SHOWN_COMMANDS),\n textareaRef.current!.element!,\n prefix.length\n );\n setCommandPopover(popover);\n setActiveActionIndex(0);\n }, 100);\n } else {\n setCommandText(command);\n setCommand(action.payload!);\n setCommandPopover(null);\n setCommandPrefix(\"/\");\n onCommandSelect(action.payload!);\n }\n textareaRef.current?.focus();\n },\n [commandPopover, commandPrefix, onCommandSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n setCommandPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover && !commandPopover) {\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 meaningfulActions = getMeaningfulActions(\n (mentionPopover || commandPopover)!.actions\n );\n const total = meaningfulActions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n return false;\n }\n case \"Enter\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n const activeAction = getMeaningfulActions(\n (mentionPopover || commandPopover)!.actions\n )[activeActionIndex];\n if (mentionPopover) {\n handleMention(activeAction);\n } else {\n handleSelectCommand(activeAction);\n }\n return false;\n }\n case \"Delete\":\n case \"Backspace\": {\n const popovers = [\n {\n textLength: mentionedText.length,\n prefixLength: 0,\n },\n {\n textLength: commandText.length,\n prefixLength: 0,\n },\n ];\n\n for (const { textLength, prefixLength } of popovers) {\n if (textLength) {\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 = prefixLength;\n const currentEnd = currentStart + textLength;\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 }\n break;\n }\n }\n },\n [\n activeActionIndex,\n commandPopover,\n commandText.length,\n handleMention,\n handleSelectCommand,\n mentionPopover,\n mentionedText.length,\n ]\n );\n\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles]\n );\n\n return (\n <>\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={hasFiles ? 144 : 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 onPaste={paste}\n style={{\n paddingTop: hasFiles ? 94 : 10,\n }}\n />\n {hasFiles && (\n <UploadedFiles\n files={files!}\n onRemove={(uid, abortController) => {\n removeFile(uid);\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <div className=\"buttons\">\n {uploadEnabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadAccept}\n disabled={exceeded}\n onChange={(files) => {\n appendFiles(files);\n textareaRef.current?.focus();\n }}\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n <button\n className=\"btn-send\"\n disabled={sendDisabled}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n {mentionOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {commandOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {mentionPopover &&\n createPortal(\n <WrappedActions\n actions={mentionPopover.actions}\n style={mentionPopover.style}\n activeKeys={getActiveActionKeys(\n mentionPopover.actions,\n activeActionIndex\n )}\n footerTips={t(K.COMMAND_TIPS)}\n onActionClick={(e) => handleMention(e.detail)}\n />,\n document.body\n )}\n {commandPopover &&\n createPortal(\n <WrappedActions\n actions={commandPopover.actions}\n style={commandPopover.style}\n activeKeys={getActiveActionKeys(\n commandPopover.actions,\n activeActionIndex\n )}\n footerTips={\n commandPrefix === \"/\"\n ? t(K.COMMAND_TIPS)\n : t(K.SEARCH_COMMANDS_TIPS, { count: MAX_SHOWN_COMMANDS })\n }\n onActionClick={(e) =>\n handleSelectCommand(e.detail as ActionWithSubCommands)\n }\n />,\n document.body\n )}\n </div>\n </div>\n <GlobalDragOverlay\n disabled={!uploadEnabled || exceeded}\n uploadOptions={uploadOptions}\n onFilesDropped={onFilesDropped}\n />\n </>\n );\n}\n\nfunction getMeaningfulActions(\n actions: ActionWithSubCommands[]\n): ActionWithSubCommands[] {\n return actions.filter(\n (action) =>\n (action as any).type !== \"group\" && (action as any).type !== \"divider\"\n );\n}\n\nfunction getActiveActionKeys(\n actions: ActionWithSubCommands[],\n index: number\n): (string | number)[] {\n const meaningfulActions = getMeaningfulActions(actions);\n return [meaningfulActions[index].key!];\n}\n\nfunction getCommandPopover(\n commands: Command[],\n textarea: HTMLTextAreaElement,\n selectionStart: number\n): MentionPopover {\n const position = getCaretPositionInTextarea(textarea, selectionStart);\n const textareaRect = textarea.getBoundingClientRect();\n return {\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: getGroupedCommandActions(commands),\n };\n}\n\nfunction getGroupedCommandActions(\n commands: Command[]\n): ActionWithSubCommands[] {\n const grouped = commands.every((cmd) => cmd.groupKey && cmd.groupLabel);\n if (grouped) {\n const groups = new Map<string, { label: string; commands: Command[] }>();\n for (const command of commands) {\n const groupKey = command.groupKey!;\n let group = groups.get(groupKey);\n if (!group) {\n groups.set(\n groupKey,\n (group = {\n label: command.groupLabel!,\n commands: [],\n })\n );\n }\n group.commands.push(command);\n }\n return [...groups.values()].flatMap((group) => [\n {\n type: \"group\",\n text: group.label,\n },\n ...getCommandActions(group.commands),\n ]) as ActionWithSubCommands[];\n }\n\n return getCommandActions(commands);\n}\n\nfunction getCommandActions(commands: Command[]): ActionWithSubCommands[] {\n return commands.map((command) => ({\n key: command.value,\n text: command.label,\n subCommands: command.subCommands,\n payload: command.payload,\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, property } = 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 @property({ type: Boolean, render: false })\n accessor sticky: boolean | undefined;\n\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 { NavLink } from \"./NavLink.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 userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\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 canAddProject?: boolean;\n myLinks?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon?: GeneralIconProps;\n activeIncludes?: string[];\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n open: () => void;\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 @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | 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 historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | 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 @property({ type: Boolean })\n accessor canAddProject: boolean | undefined = true;\n\n @property({ attribute: false })\n accessor myLinks: 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<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\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 open() {\n this.#ref.current?.open();\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 userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n newChatLinkWhenCollapsed={this.newChatLinkWhenCollapsed}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n links={this.links}\n canAddProject={this.canAddProject}\n myLinks={this.myLinks}\n onLogout={this.#handleLogout}\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 onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyUrlTemplate,\n historyActions,\n projectUrlTemplate,\n projectActions,\n links,\n canAddProject,\n myLinks,\n onLogout,\n onActionClick,\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: \"lucide\",\n icon: \"languages\",\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 open: () => {\n setCollapsed(false);\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 <NavLink\n key={index}\n url={link.url}\n activeIncludes={link.activeIncludes}\n render={({ active }) => (\n <WrappedLink\n key={index}\n className={classNames(\"link\", { active })}\n url={link.url}\n >\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n )}\n />\n ))}\n </div>\n ) : null}\n <ChatHistory\n ref={historyRef}\n canAddProject={canAddProject}\n historyUrlTemplate={historyUrlTemplate}\n historyActions={historyActions}\n projectUrlTemplate={projectUrlTemplate}\n projectActions={projectActions}\n myLinks={myLinks}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n onProjectActionClick={onProjectActionClick}\n onAddProject={onAddProject}\n />\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n themeVariant=\"elevo\"\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 { useEffect, useState, type RefObject } from \"react\";\n\nexport function useHasAssignedNodes(slotRef: RefObject<HTMLSlotElement>) {\n const [hasAssignedNodes, setHasAssignedNodes] = useState(false);\n\n useEffect(() => {\n const slotElement = slotRef.current;\n\n if (!slotElement) {\n return;\n }\n\n const listener = () => {\n setHasAssignedNodes(slotElement.assignedNodes().length > 0);\n };\n\n listener();\n slotElement.addEventListener(\"slotchange\", listener);\n\n return () => {\n slotElement.removeEventListener(\"slotchange\", listener);\n };\n }, [slotRef]);\n\n return hasAssignedNodes;\n}\n","import React, { useRef } 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\";\nimport { useHasAssignedNodes } from \"@next-shared/hooks\";\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 tooltipHoist?: boolean;\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 tooltipHoist: boolean | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n /** 是否缩小图标尺寸(部分 easyops 图标过大) */\n @property({ render: false, type: Boolean })\n accessor reduceIconSize: boolean | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n tooltipHoist={this.tooltipHoist}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({\n icon,\n tooltip,\n tooltipHoist,\n disabled,\n}: IconButtonProps) {\n const slotRef = useRef<HTMLSlotElement>(null);\n const hasSlotted = useHasAssignedNodes(slotRef);\n\n const btn = (\n <button disabled={disabled} className={hasSlotted ? \"has-slotted\" : \"\"}>\n <WrappedIcon className=\"icon\" {...icon} />\n <slot ref={slotRef} />\n </button>\n );\n\n if (tooltip) {\n return (\n <WrappedTooltip content={tooltip} hoist={tooltipHoist}>\n {btn}\n </WrappedTooltip>\n );\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 limit?: number;\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 @property({ type: Number })\n accessor limit: number | undefined;\n\n render() {\n return <ShowCasesComponent list={this.list} limit={this.limit} />;\n }\n}\n\nfunction ShowCasesComponent({ list, limit }: 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 (!list) {\n return;\n }\n let filtered = list;\n if (activeGroup) {\n filtered = filtered.filter((item) => item.scenario === activeGroup);\n }\n if (limit) {\n filtered = filtered.slice(0, limit);\n }\n return filtered;\n }, [activeGroup, list, limit]);\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\";\nimport type {\n StickyContainer,\n StickyContainerProps,\n} from \"../sticky-container/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});\nconst WrappedStickyContainer = wrapBrick<StickyContainer, StickyContainerProps>(\n \"ai-portal.sticky-container\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n stickyTop?: number;\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 @property({ type: Number })\n accessor stickyTop: number | undefined;\n\n render() {\n return <McpToolsComponent list={this.list} stickyTop={this.stickyTop} />;\n }\n}\n\nfunction McpToolsComponent({ list, stickyTop }: 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 tabsNode = (\n <WrappedTabList\n tabs={tabs}\n activeTab={activePlatform}\n onTabClick={(event) => setActivePlatform(event.detail.id)}\n />\n );\n\n return (\n <>\n {stickyTop == null ? (\n <div className=\"non-sticky-tabs\">{tabsNode}</div>\n ) : (\n <WrappedStickyContainer\n className=\"sticky-tabs\"\n style={{ top: stickyTop }}\n >\n {tabsNode}\n </WrappedStickyContainer>\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","// 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 { ChatStreamComponent } from \"./ChatStream.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n UploadOptions,\n} 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 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 showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n uploadOptions?: UploadOptions;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\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 /** 是否启用回放。仅初始设置有效。 */\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 @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 @property({ attribute: false })\n accessor uploadOptions: UploadOptions | 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 @event({ type: \"split.change\" })\n accessor #splitChange!: EventEmitter<boolean>;\n\n #onSplitChange = (splitted: boolean) => {\n this.#splitChange.emit(splitted);\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 return (\n <ForwardedChatStreamComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\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 showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n uploadOptions={this.uploadOptions}\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 onSplitChange={this.#onSplitChange}\n ref={this.#ref}\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\";\nimport type {\n StickyContainer,\n StickyContainerProps,\n} from \"../sticky-container/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});\nconst WrappedStickyContainer = wrapBrick<StickyContainer, StickyContainerProps>(\n \"ai-portal.sticky-container\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n urlTemplate?: string;\n stickyTop?: number;\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 @property({ type: Number })\n accessor stickyTop: number | undefined;\n\n render() {\n return (\n <AIEmployeesComponent\n list={this.list}\n industries={this.industries}\n urlTemplate={this.urlTemplate}\n stickyTop={this.stickyTop}\n />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n urlTemplate,\n stickyTop,\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 tabsNode = (\n <WrappedTabList\n tabs={tabs}\n activeTab={activeIndustry}\n onTabClick={(event) => setActiveIndustry(event.detail.id)}\n />\n );\n\n return (\n <>\n {stickyTop == null ? (\n <div className=\"non-sticky-tabs\">{tabsNode}</div>\n ) : (\n <WrappedStickyContainer\n className=\"sticky-tabs\"\n style={{ top: stickyTop }}\n >\n {tabsNode}\n </WrappedStickyContainer>\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","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\";\nimport type {\n StickyContainer,\n StickyContainerProps,\n} from \"../sticky-container/index.js\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedStickyContainer = wrapBrick<StickyContainer, StickyContainerProps>(\n \"ai-portal.sticky-container\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PageContainerProps {\n pageTitle?: string;\n breadcrumbs?: Breadcrumb[];\n size?: \"medium\" | \"small\" | \"full\";\n variant?: \"default\" | \"form\";\n sticky?: boolean;\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\" | \"full\" | undefined;\n\n @property({ render: false })\n accessor variant: \"default\" | \"form\" | undefined;\n\n @property({ type: Boolean })\n accessor sticky: boolean | undefined;\n\n render() {\n return (\n <PageContainerComponent\n pageTitle={this.pageTitle}\n breadcrumbs={this.breadcrumbs}\n sticky={this.sticky}\n />\n );\n }\n}\n\nfunction PageContainerComponent({\n breadcrumbs,\n pageTitle,\n sticky,\n}: PageContainerProps) {\n useEffect(() => {\n if (typeof pageTitle === \"string\") {\n getRuntime().applyPageTitle(pageTitle);\n }\n }, [pageTitle]);\n\n const header =\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\n return (\n <div className=\"container\">\n {header && sticky ? (\n <WrappedStickyContainer className=\"sticky-header\">\n {header}\n </WrappedStickyContainer>\n ) : (\n <div className=\"non-sticky-header\">{header}</div>\n )}\n <slot />\n </div>\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","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 { ModulePartOfComponent, ParsedApp } from \"@next-shared/tsx-parser\";\nimport { convertView, type ConvertResult } 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 url?: 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 @property()\n accessor url: 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\n rootId={this.#rootId}\n source={this.source}\n url={this.url}\n />\n </Suspense>\n );\n }\n}\n\ninterface PreviewContainerComponentProps extends PreviewContainerProps {\n rootId: string;\n}\n\nfunction PreviewContainerComponent({\n rootId,\n source,\n url,\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 convertView(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(\n () => (parsedResult?.entry?.defaultExport as ModulePartOfComponent)?.title,\n [parsedResult]\n );\n\n return (\n <RenderComponent\n rootId={rootId}\n pageTitle={viewTitle}\n convertedResult={convertedResult}\n url={url}\n />\n );\n}\n\ninterface RenderComponentProps {\n rootId: string;\n pageTitle?: string;\n convertedResult: ConvertResult | null;\n url?: string;\n}\n\nfunction RenderComponent({\n rootId,\n pageTitle,\n convertedResult,\n url,\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, url });\n }, [convertedResult, url]);\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<ParsedApp> {\n const worker = await getRemoteTsxParserWorker();\n const result = await worker.parseView(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, { useEffect, useMemo, useRef, useState } 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 type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrapperIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrapperButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst { defineElement, property, event } = createDecorators();\n\ninterface ActionItem {\n text: string;\n key: string;\n icon?: GeneralIconProps;\n hidden?: boolean;\n}\n\nexport interface ActionButtonsProps {\n items?: ActionItem[];\n activeKey?: string | null;\n}\n\n/**\n * 构件 `ai-portal.action-buttons`\n */\nexport\n@defineElement(\"ai-portal.action-buttons\", {\n styleTexts: [styleText],\n})\nclass ActionButtons extends ReactNextElement implements ActionButtonsProps {\n @property({\n attribute: false,\n })\n accessor items: ActionItem[] | undefined;\n\n @property()\n accessor activeKey: string | null | undefined;\n\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ActionItem | null>;\n\n #handleChange = (action: ActionItem | null) => {\n this.activeKey = action ? action.key : null;\n this.#change.emit(action);\n };\n\n render() {\n return (\n <ActionButtonsComponent\n items={this.items}\n activeKey={this.activeKey}\n onChange={this.#handleChange}\n />\n );\n }\n}\n\ninterface ActionButtonsComponentProps extends ActionButtonsProps {\n onChange: (action: ActionItem | null) => void;\n}\n\nfunction ActionButtonsComponent({\n items,\n activeKey: propActiveKey,\n onChange,\n}: ActionButtonsComponentProps) {\n const [activeKey, setActiveKey] = useState<string | null>(\n propActiveKey ?? null\n );\n const initializedRef = useRef(false);\n\n useEffect(() => {\n setActiveKey(propActiveKey ?? null);\n }, [propActiveKey]);\n\n useEffect(() => {\n if (!initializedRef.current) {\n initializedRef.current = true;\n return;\n }\n onChange(\n activeKey\n ? (items?.find((item) => !item.hidden && item.key === activeKey) ??\n null)\n : null\n );\n }, [activeKey, items, onChange]);\n\n const filteredItems = useMemo(() => {\n return items?.filter(\n (item) => (!item.hidden && !activeKey) || item.key === activeKey\n );\n }, [items, activeKey]);\n\n return (\n <div className=\"button-container\">\n {filteredItems?.map((item) => {\n const { text, icon, key } = item;\n return (\n <WrapperButton\n key={key}\n className={`action${activeKey ? \" active\" : \"\"}`}\n themeVariant=\"elevo\"\n type=\"neutral\"\n onClick={() => {\n if (!activeKey) {\n setActiveKey(key);\n }\n }}\n >\n {icon ? <WrapperIcon className=\"icon\" {...icon} /> : null}\n {text}\n {activeKey ? (\n <WrapperIcon\n className=\"remove\"\n lib=\"lucide\"\n icon=\"x\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n setActiveKey(null);\n }}\n />\n ) : null}\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","// istanbul ignore file: compatibility workaround\nimport type { HTMLAttributes } from \"react\";\n\nlet _supports: boolean | undefined;\n\nfunction supportsContentEditablePlaintextOnly(): boolean {\n if (typeof _supports !== \"boolean\") {\n const div = document.createElement(\"div\");\n div.setAttribute(\"contenteditable\", \"PLAINTEXT-ONLY\");\n _supports = div.contentEditable === \"plaintext-only\";\n }\n return _supports;\n}\n\nexport function getContentEditable(\n editable: boolean\n): HTMLAttributes<HTMLDivElement>[\"contentEditable\"] {\n return editable\n ? supportsContentEditablePlaintextOnly()\n ? \"plaintext-only\"\n : \"true\"\n : \"false\";\n}\n","import React, { useCallback, useEffect, 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 owner?: GoalMember;\n users?: GoalMember[];\n instanceId: string;\n level: number;\n pending?: boolean;\n pendingParentId?: string;\n}\n\ninterface GoalCardItemProps {\n goalItem: GoalItem;\n idWidth?: number;\n cardStyle?: React.CSSProperties;\n isActive?: boolean;\n onTitleChange?: (newTitle: string) => void;\n onStatusChange?: (newStatus: GoalState) => void;\n onNewChat?: () => void;\n onClick?: () => void;\n onAppendChild?: () => void;\n onRevokeAppendChild?: () => 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 idWidth,\n cardStyle,\n onStatusChange,\n onTitleChange,\n onClick,\n onNewChat,\n onAppendChild,\n onRevokeAppendChild,\n isActive,\n}: GoalCardItemProps) {\n const {\n state,\n id: serialNumber,\n title,\n conversations,\n owner,\n pending,\n } = 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\n if (pending && !value?.trim()) {\n onRevokeAppendChild?.();\n return;\n }\n\n if (value !== null && title !== value) {\n onTitleChange?.(value);\n }\n },\n [pending, title, onRevokeAppendChild, 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 const titleRef = useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (pending) {\n titleRef.current?.focus();\n }\n }, [pending]);\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.level + 1) * 24}px`,\n ...cardStyle,\n }}\n onClick={pending ? undefined : onClick}\n >\n <div className=\"start\">\n <WrappedDropdownActions\n actions={iconActions}\n disabled={pending}\n onActionClick={(e) => {\n handleStatusChange(e.detail);\n }}\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\" style={{ width: idWidth }}>\n #{pending ? \"\" : serialNumber}\n </span>\n <span\n className=\"title\"\n ref={titleRef}\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 {goalItem.level === 0 && (\n <WrappedButton\n className=\"append-child\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onAppendChild}\n >\n <WrappedIcon lib=\"lucide\" icon=\"plus\" />\n </WrappedButton>\n )}\n {!pending && (\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 )}\n </div>\n </div>\n </div>\n );\n}\n","import React, {\n useState,\n useEffect,\n forwardRef,\n createRef,\n useImperativeHandle,\n useMemo,\n} 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\";\nimport { uniqueId } from \"lodash\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = 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\nconst GoalCardListComponent = forwardRef(LegacyGoalCardListComponent);\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 #ref = createRef<GoalListRef>();\n\n @method()\n appendChildDone(pendingId: string, newItem: GoalItem) {\n this.#ref.current?.appendChildDone(pendingId, newItem);\n }\n\n render() {\n return (\n <GoalCardListComponent\n ref={this.#ref}\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\ninterface GoalListRef {\n appendChildDone: (pendingId: string, newItem: GoalItem) => void;\n}\n\nfunction LegacyGoalCardListComponent(\n {\n goalList: _goalList,\n cardStyle,\n onTitleChange,\n onStatusChange,\n onItemClick,\n onNewChat,\n activeKey,\n }: GoalCardListComponentProps,\n ref: React.Ref<GoalListRef>\n) {\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 const handleAppendChild = (item: GoalItem) => {\n const newChild: GoalItem = {\n instanceId:\n process.env.NODE_ENV === \"test\"\n ? \"test-pending-id\"\n : uniqueId(\"pending-\"),\n pending: true,\n id: 0,\n title: \"\",\n state: \"ready\",\n level: 1,\n pendingParentId: item.instanceId,\n };\n setGoalList((prevList) => {\n const index =\n prevList?.findIndex((goal) => goal.instanceId === item.instanceId) ??\n -1;\n if (index === -1) return prevList;\n const offsetIndex =\n prevList!.slice(index + 1).findIndex((goal) => goal.level === 0) + 1;\n if (offsetIndex === 0) {\n return [...prevList!, newChild];\n }\n return [\n ...prevList!.slice(0, index + offsetIndex),\n newChild,\n ...prevList!.slice(index + offsetIndex),\n ];\n });\n };\n\n useImperativeHandle(\n ref,\n () => ({\n appendChildDone: (pendingId: string, newItem: GoalItem) => {\n setGoalList((prevList) =>\n prevList?.map((goal) =>\n goal.instanceId === pendingId\n ? { ...newItem, level: goal.level }\n : goal\n )\n );\n },\n }),\n []\n );\n\n const idWidth = useMemo(() => {\n const maxId =\n goalList?.reduce((max, item) => Math.max(max, item.id), 0) ?? 0;\n return 10 * (maxId.toString().length + 1);\n }, [goalList]);\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 idWidth={idWidth}\n cardStyle={cardStyle}\n onTitleChange={(v) => handleTitleChange(v, item)}\n onStatusChange={(v) => handleStatusChange(v, item)}\n onNewChat={() => onNewChat?.(item)}\n onClick={() => onItemClick?.(item)}\n onAppendChild={() => handleAppendChild(item)}\n onRevokeAppendChild={() => {\n setGoalList((prevList) =>\n prevList?.filter((goal) => goal.instanceId !== item.instanceId)\n );\n }}\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\";\nimport { UploadedFiles } from \"../shared/FileUpload/UploadedFiles.js\";\nimport UploadedFilesStyleText from \"../shared/FileUpload/UploadedFiles.shadow.css\";\nimport { useFilesUploading } from \"../shared/useFilesUploading.js\";\nimport {\n UploadButton,\n type UploadButtonRef,\n} from \"../shared/FileUpload/UploadButton.js\";\nimport type { ChatPayload, UploadOptions } from \"../shared/interfaces.js\";\nimport GlobalDragOverlay from \"../shared/FileUpload/GlobalDragOverlay.js\";\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 uploadOptions?: UploadOptions;\n}\n\nexport interface ChatInputEvents {\n \"chat.submit\": CustomEvent<ChatPayload>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onChatSubmit: \"chat.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText, UploadedFilesStyleText],\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 @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\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: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\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 uploadOptions={this.uploadOptions}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\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 const uploadEnabled = uploadOptions?.enabled;\n const uploadAccept = uploadOptions?.accept;\n const {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\n } = useFilesUploading(uploadOptions);\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n useEffect(() => {\n if (!uploadEnabled) {\n resetFiles();\n }\n }, [uploadEnabled, resetFiles]);\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 || !allFilesDone) {\n return;\n }\n\n onMessageSubmit(value);\n onChatSubmit({ content: value, files: fileInfos });\n valueRef.current = \"\";\n setValue(\"\");\n resetFiles();\n },\n [\n allFilesDone,\n submitDisabled,\n onMessageSubmit,\n onChatSubmit,\n fileInfos,\n resetFiles,\n ]\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 if (hasFiles) {\n setWrap(true);\n return;\n }\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 }, [hasFiles]);\n\n useEffect(() => {\n if (!value && !hasFiles) {\n setWrap(false);\n }\n }, [value, hasFiles]);\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 const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles]\n );\n\n return (\n <>\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={hasFiles ? 86 : 16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n onPaste={paste}\n style={{\n paddingTop: hasFiles ? 78 : 8,\n }}\n />\n {hasFiles && (\n <UploadedFiles\n files={files!}\n className=\"condensed\"\n onRemove={(uid, abortController) => {\n removeFile(uid);\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n </div>\n <div className=\"toolbar\">\n {uploadEnabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadAccept}\n disabled={exceeded}\n onChange={(files) => {\n appendFiles(files);\n textareaRef.current?.focus();\n }}\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value || !allFilesDone}\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 <GlobalDragOverlay\n disabled={!uploadEnabled || exceeded || uploadOptions?.dragDisabled}\n uploadOptions={uploadOptions}\n onFilesDropped={onFilesDropped}\n />\n </>\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, { useMemo } 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 const bgClass = useMemo(() => {\n // Get a deterministic class based on the caseTitle\n if (!caseTitle) return bgClasses[0];\n let hash = 0;\n for (let i = 0; i < caseTitle.length; i++) {\n hash = caseTitle.charCodeAt(i) + ((hash << 5) - hash);\n }\n const index = Math.abs(hash) % bgClasses.length;\n return bgClasses[index];\n }, [caseTitle]);\n\n return (\n <WrappedLink className={`link ${bgClass}`} url={url}>\n <span className=\"title\">{caseTitle}</span>\n <span className=\"description\">{summary}</span>\n <span className=\"mask\" />\n <span className=\"button\">\n <WrappedIcon lib=\"easyops\" icon=\"replay\" />\n {t(K.WATCH_REPLAY)}\n </span>\n </WrappedLink>\n );\n}\n","import { http } from \"@next-core/http\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport type { ToolInfo } from \"@next-shared/tsx-parser\";\n\nexport async function callTool(\n tool: ToolInfo,\n params: Record<string, unknown>\n): Promise<unknown> {\n const response = await http.post<{ data: unknown }>(\n `api/gateway/logic.llm.aiops_service/api/v1/elevo/conversation/${\n tool.conversationId\n }/step/${tool.stepId}/view`,\n {\n params,\n }\n );\n\n return response.data;\n}\n\ncustomElements.define(\"ai-portal.call-tool\", createProviderClass(callTool));\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport imageGoals from \"./images/goals@2x.png\";\nimport imageActivities from \"./images/activities@2x.png\";\nimport imageSpaces from \"./images/spaces@2x.png\";\nimport imageServiceflows from \"./images/serviceflows@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface BlankStateProps {\n illustration?: BlankStateIllustration;\n description?: string;\n}\n\nexport type BlankStateIllustration =\n | \"goals\"\n | \"activities\"\n | \"collaboration-spaces\"\n | \"serviceflows\";\n\n/**\n * 构件 `ai-portal.blank-state`\n */\nexport\n@defineElement(\"ai-portal.blank-state\", {\n styleTexts: [styleText],\n})\nclass BlankState extends ReactNextElement implements BlankStateProps {\n @property()\n accessor illustration: BlankStateIllustration | undefined;\n\n @property()\n accessor description: string | undefined;\n\n render() {\n return (\n <BlankStateComponent\n illustration={this.illustration}\n description={this.description}\n />\n );\n }\n}\n\nfunction BlankStateComponent({ illustration, description }: BlankStateProps) {\n return (\n <>\n <img src={getIllustrationSrc(illustration)} width={184} height={138} />\n <p>{description}</p>\n </>\n );\n}\n\nfunction getIllustrationSrc(illustration?: BlankStateIllustration) {\n switch (illustration) {\n case \"goals\":\n return imageGoals;\n case \"collaboration-spaces\":\n return imageSpaces;\n case \"serviceflows\":\n return imageServiceflows;\n default:\n return imageActivities;\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, property } = createDecorators();\n\nexport interface StickyContainerProps {\n variant?: StickyContainerVariant;\n}\n\nexport type StickyContainerVariant = \"default\" | \"home\";\n\n/**\n * 构件 `ai-portal.sticky-container`\n *\n * @slot - 内容\n * @slot header - 头部\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.sticky-container\", {\n styleTexts: [styleText],\n})\nclass StickyContainer extends ReactNextElement implements StickyContainerProps {\n /**\n * @default \"default\"\n */\n @property({ render: false })\n accessor variant: StickyContainerVariant | undefined;\n\n render() {\n return <StickyContainerComponent />;\n }\n}\n\nfunction StickyContainerComponent() {\n return <slot />;\n}\n","import React, { useRef } 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 { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport { useHasAssignedNodes } from \"@next-shared/hooks\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ElevoCardProps {\n cardTitle?: string;\n description?: string;\n url?: string;\n avatar?: string | IconWithColor;\n avatarType?: \"icon\" | \"image\";\n}\n\nexport type IconWithColor = GeneralIconProps & {\n color?: string;\n};\n\n/**\n * 构件 `ai-portal.elevo-card`\n */\nexport\n@defineElement(\"ai-portal.elevo-card\", {\n styleTexts: [styleText],\n})\nclass ElevoCard extends ReactNextElement implements ElevoCardProps {\n @property()\n accessor cardTitle: string | undefined;\n\n @property()\n accessor description: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n @property({ attribute: false })\n accessor avatar: string | GeneralIconProps | undefined;\n\n @property()\n accessor avatarType: \"icon\" | \"image\" | undefined;\n\n render() {\n return (\n <ElevoCardComponent\n cardTitle={this.cardTitle}\n description={this.description}\n url={this.url}\n avatar={this.avatar}\n avatarType={this.avatarType}\n />\n );\n }\n}\n\nfunction ElevoCardComponent({\n cardTitle,\n description,\n url,\n avatar,\n avatarType,\n}: ElevoCardProps) {\n const footerRef = useRef<HTMLSlotElement>(null);\n const hasFooter = useHasAssignedNodes(footerRef);\n\n const actionsRef = useRef<HTMLSlotElement>(null);\n const hasActions = useHasAssignedNodes(actionsRef);\n\n return (\n <WrappedLink className={classNames(\"card\", { clickable: !!url })} url={url}>\n <div className=\"header\">\n <div className=\"heading\">\n {avatarType !== \"image\" && avatar ? (\n <IconAvatar {...(avatar as IconWithColor)} />\n ) : (\n <div className=\"avatar\" />\n )}\n <div className=\"title\">{cardTitle}</div>\n </div>\n <div className=\"actions\" hidden={!hasActions}>\n <slot name=\"actions\" ref={actionsRef} />\n </div>\n </div>\n <div className=\"body\">{description}</div>\n <div className=\"footer\" hidden={!hasFooter}>\n <slot name=\"footer\" ref={footerRef} />\n </div>\n </WrappedLink>\n );\n}\n\nfunction IconAvatar({ color, ...iconProps }: IconWithColor) {\n return (\n <div\n className=\"avatar\"\n style={\n color\n ? {\n borderColor: `rgba(var(--theme-${color}-color-rgb-channel), 0.15)`,\n color: `var(--theme-${color}-color)`,\n }\n : undefined\n }\n >\n <WrappedIcon {...iconProps} />\n </div>\n );\n}\n","const dpr = window.devicePixelRatio || 1;\n\nconst TAB_HEIGHT = 40;\nconst BORDER_RADIUS = 12;\nconst slopeAngle = (Math.PI * 36) / 180; // 36度角\nconst deltaY = BORDER_RADIUS * (1 - Math.sin(slopeAngle));\nconst deltaX = BORDER_RADIUS * Math.cos(slopeAngle);\nconst slopeHeight = TAB_HEIGHT - deltaY * 2;\nconst slopeWidth = slopeHeight * Math.tan(slopeAngle);\nconst offsetX = deltaX + slopeWidth / 2;\n\nexport default function drawBg(\n canvas: HTMLCanvasElement,\n ctx: CanvasRenderingContext2D,\n width: number,\n height: number,\n isFirstTab: boolean,\n tabOffset: number,\n tabWidth: number\n) {\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n\n ctx.scale(dpr, dpr);\n\n ctx.clearRect(0, 0, width, height);\n\n ctx.fillStyle = \"rgba(255,255,255,0.5)\";\n\n // 创建渐变边框\n const borderGradient = ctx.createLinearGradient(0, 0, 0, height);\n borderGradient.addColorStop(0, \"rgba(255,255,255,0.9)\");\n borderGradient.addColorStop(1, \"rgba(255,255,255,0.4)\");\n\n ctx.lineWidth = 1;\n ctx.strokeStyle = borderGradient;\n\n const actualWidth = width - 1;\n const actualHeight = height - 1;\n\n ctx.translate(0.5, 0.5);\n ctx.beginPath();\n\n if (isFirstTab) {\n ctx.moveTo(0, BORDER_RADIUS);\n ctx.arcTo(0, 0, BORDER_RADIUS, 0, BORDER_RADIUS);\n } else {\n ctx.moveTo(0, BORDER_RADIUS + TAB_HEIGHT);\n ctx.arcTo(0, TAB_HEIGHT, BORDER_RADIUS, TAB_HEIGHT, BORDER_RADIUS);\n\n const upStartX = tabOffset - offsetX;\n ctx.lineTo(upStartX, TAB_HEIGHT);\n ctx.arc(\n upStartX,\n TAB_HEIGHT - BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI / 2,\n slopeAngle,\n true\n );\n\n ctx.lineTo(upStartX + deltaX + slopeWidth, deltaY);\n ctx.arc(\n upStartX + offsetX * 2,\n BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI + slopeAngle,\n Math.PI * 1.5,\n false\n );\n }\n\n const downStartX = tabOffset + tabWidth - offsetX;\n ctx.lineTo(downStartX, 0);\n ctx.arc(\n downStartX,\n BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI * 1.5,\n Math.PI * 2 - slopeAngle,\n false\n );\n\n ctx.lineTo(downStartX + deltaX + slopeWidth, TAB_HEIGHT - deltaY);\n ctx.arc(\n downStartX + offsetX * 2,\n TAB_HEIGHT - BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI - slopeAngle,\n Math.PI / 2,\n true\n );\n\n ctx.lineTo(actualWidth - BORDER_RADIUS, TAB_HEIGHT);\n ctx.arcTo(\n actualWidth,\n TAB_HEIGHT,\n actualWidth,\n TAB_HEIGHT + BORDER_RADIUS,\n BORDER_RADIUS\n );\n\n ctx.lineTo(actualWidth, actualHeight - BORDER_RADIUS);\n ctx.arcTo(\n actualWidth,\n actualHeight,\n actualWidth - BORDER_RADIUS,\n actualHeight,\n BORDER_RADIUS\n );\n\n ctx.lineTo(BORDER_RADIUS, actualHeight);\n ctx.arcTo(0, actualHeight, 0, actualHeight - BORDER_RADIUS, BORDER_RADIUS);\n\n ctx.closePath();\n\n ctx.fill();\n ctx.stroke();\n}\n","import React, { useEffect, useRef } 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 ResizeObserver from \"resize-observer-polyfill\";\nimport drawBg from \"./drawBg\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface FlowTabsProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\ntype SizeTuple = [width: number, height: number];\n\n/**\n * 构件 `ai-portal.flow-tabs`\n */\nexport\n@defineElement(\"ai-portal.flow-tabs\", {\n styleTexts: [styleText],\n})\nclass FlowTabs extends ReactNextElement implements FlowTabsProps {\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 <FlowTabsComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface FlowTabsComponentProps extends FlowTabsProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction FlowTabsComponent({\n tabs,\n activeTab,\n onTabClick,\n}: FlowTabsComponentProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const bgRef = useRef<HTMLCanvasElement>(null);\n const tabsRef = useRef<HTMLUListElement>(null);\n\n useEffect(() => {\n const root = rootRef.current;\n const canvas = bgRef.current;\n const nav = tabsRef.current;\n if (!root || !canvas || !nav || !tabs?.length) return;\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n let rootSize: SizeTuple | undefined;\n\n let requestId: number | undefined;\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const width = getContentBoxSize(entry, \"width\");\n const height = getContentBoxSize(entry, \"height\");\n rootSize = [width, height];\n }\n }\n\n const tabElements = Array.from(nav.querySelectorAll(\".tab\"));\n const activeTabElement = tabElements.find((tab) =>\n tab.classList.contains(\"active\")\n );\n if (!activeTabElement) return;\n\n const tabWidth = activeTabElement.getBoundingClientRect().width;\n const activeTabIndex = tabElements.indexOf(activeTabElement);\n const isFirstTab = activeTabIndex === 0;\n let tabOffset = 0;\n if (!isFirstTab) {\n const tabsOffset = nav.getBoundingClientRect().left;\n const activeTabOffset = activeTabElement!.getBoundingClientRect().left;\n tabOffset = activeTabOffset - tabsOffset;\n }\n\n if (requestId) {\n cancelAnimationFrame(requestId);\n }\n requestId = requestAnimationFrame(() => {\n if (rootSize) {\n drawBg(\n canvas,\n ctx,\n rootSize[0],\n rootSize[1],\n isFirstTab,\n tabOffset,\n tabWidth\n );\n }\n });\n });\n observer.observe(root);\n observer.observe(nav);\n return () => {\n observer.disconnect();\n if (requestId) {\n cancelAnimationFrame(requestId);\n }\n };\n }, [tabs, activeTab]);\n\n return (\n <div className=\"container\" ref={rootRef}>\n <canvas className=\"bg\" ref={bgRef} />\n <div className=\"header\">\n <ul className=\"tabs\" ref={tabsRef}>\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)} title={tab.label}>\n {tab.label}\n </a>\n </li>\n ))}\n </ul>\n <div className=\"toolbar\">\n <slot name=\"toolbar\" />\n </div>\n </div>\n <div className=\"body\">\n <slot />\n </div>\n </div>\n );\n}\n\n// istanbul ignore next: compatibility code\nfunction getContentBoxSize(\n entry: ResizeObserverEntry,\n type: \"width\" | \"height\"\n): number {\n const boxSizeType = type === \"height\" ? \"blockSize\" : \"inlineSize\";\n const size = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0][boxSizeType]\n : (entry.contentBoxSize as unknown as ResizeObserverSize)[boxSizeType]\n : entry.contentRect[type];\n return size;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ADD_STAGE = \"ADD_STAGE\",\n PLEASE_ENTER_NAME = \"PLEASE_ENTER_NAME\",\n UNASSIGNED = \"UNASSIGNED\",\n DELETE_STAGE = \"DELETE_STAGE\",\n DELETE_STAGE_TIPS = \"DELETE_STAGE_TIPS\",\n DELETE = \"DELETE\",\n ADD_ACTIVITY = \"ADD_ACTIVITY\",\n STAGE_NAME_EXISTS = \"STAGE_NAME_EXISTS\",\n ACTIVITY_NAME_EXISTS = \"ACTIVITY_NAME_EXISTS\",\n}\n\nconst en: Locale = {\n [K.ADD_STAGE]: \"Add stage\",\n [K.PLEASE_ENTER_NAME]: \"Please enter name\",\n [K.UNASSIGNED]: \"Unassigned\",\n [K.DELETE_STAGE]: \"Delete stage\",\n [K.DELETE_STAGE_TIPS]: 'Are you sure you want to delete stage \"{{ name }}\"?',\n [K.DELETE]: \"Delete\",\n [K.ADD_ACTIVITY]: \"Add activity\",\n [K.STAGE_NAME_EXISTS]: 'Stage with name \"{{ name }}\" already exists.',\n [K.ACTIVITY_NAME_EXISTS]: 'Activity with name \"{{ name }}\" already exists.',\n};\n\nconst zh: Locale = {\n [K.ADD_STAGE]: \"添加阶段\",\n [K.PLEASE_ENTER_NAME]: \"请输入名称\",\n [K.UNASSIGNED]: \"未设置\",\n [K.DELETE_STAGE]: \"删除阶段\",\n [K.DELETE_STAGE_TIPS]: \"您确定要删除阶段 “{{ name }}” 吗?\",\n [K.DELETE]: \"删除\",\n [K.ADD_ACTIVITY]: \"添加活动\",\n [K.STAGE_NAME_EXISTS]: '阶段名称 \"{{ name }}\" 已存在。',\n [K.ACTIVITY_NAME_EXISTS]: '活动名称 \"{{ name }}\" 已存在。',\n};\n\nexport const NS = \"bricks/ai-portal/stage-flow\";\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 createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport {\n GeneralIcon,\n type GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Popover,\n PopoverEvents,\n PopoverEventsMapping,\n PopoverProps,\n} from \"@next-bricks/basic/popover\";\nimport type {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"@next-bricks/form/input\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\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 WrappedPopover = wrapBrick<\n Popover,\n PopoverProps & {\n themeVariant?: \"default\" | \"elevo\";\n },\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface StageFlowProps {\n spec?: Stage[];\n aiEmployees?: AIEmployee[];\n readOnly?: boolean;\n}\n\nexport interface Stage {\n name: string;\n serviceFlowActivities?: FlowActivity[];\n}\n\nexport interface FlowActivity {\n name: string;\n description?: string;\n aiEmployeeId?: string;\n hilRules?: string;\n hilUser?: string;\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface EditActivityDetail {\n stage: Stage;\n activity: FlowActivity;\n activityIndex: number;\n}\n\nconst StageFlowComponent = forwardRef(LegacyStageFlowComponent);\n\n/**\n * 构件 `ai-portal.stage-flow`\n */\nexport\n@defineElement(\"ai-portal.stage-flow\", {\n styleTexts: [styleText],\n})\nclass StageFlow extends ReactNextElement implements StageFlowProps {\n @property({ attribute: false })\n accessor spec: Stage[] | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ type: Boolean })\n accessor readOnly: boolean | undefined;\n\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<Stage[]>;\n\n #handleChange = (spec: Stage[]) => {\n this.#change.emit(spec);\n };\n\n @event({ type: \"add.activity\" })\n accessor #addActivity!: EventEmitter<{ stage: Stage }>;\n\n #handleAddActivity = (stage: Stage) => {\n this.#addActivity.emit({ stage });\n };\n\n @event({ type: \"edit.activity\" })\n accessor #editActivity!: EventEmitter<EditActivityDetail>;\n\n #handleEditActivity = (detail: EditActivityDetail) => {\n this.#editActivity.emit(detail);\n };\n\n #ref = createRef<StageFlowRef>();\n\n @method()\n addActivity(stage: Stage, activity: FlowActivity) {\n this.#ref.current?.addActivity(stage, activity);\n }\n\n @method()\n editActivity(stage: Stage, activity: FlowActivity, activityIndex: number) {\n this.#ref.current?.editActivity(stage, activity, activityIndex);\n }\n\n @method()\n deleteActivity(stage: Stage, activityIndex: number) {\n this.#ref.current?.deleteActivity(stage, activityIndex);\n }\n\n render() {\n return (\n <StageFlowComponent\n ref={this.#ref}\n spec={this.spec}\n aiEmployees={this.aiEmployees}\n readOnly={this.readOnly}\n onChange={this.#handleChange}\n onAddActivity={this.#handleAddActivity}\n onEditActivity={this.#handleEditActivity}\n />\n );\n }\n}\n\ninterface StageFlowRef {\n addActivity(stage: Stage, activity: FlowActivity): void;\n editActivity(\n stage: Stage,\n activity: FlowActivity,\n activityIndex: number\n ): void;\n deleteActivity(stage: Stage, activityIndex: number): void;\n}\n\ninterface StageFlowComponentProps extends StageFlowProps {\n onChange: (spec: Stage[]) => void;\n onAddActivity: (stage: Stage) => void;\n onEditActivity(detail: EditActivityDetail): void;\n}\n\nfunction LegacyStageFlowComponent(\n {\n spec,\n aiEmployees,\n readOnly,\n onChange,\n onAddActivity,\n onEditActivity,\n }: StageFlowComponentProps,\n ref: Ref<StageFlowRef>\n) {\n const [stages, setStages] = useState(spec);\n const [addingStage, setAddingStage] = useState(false);\n const initialRef = useRef(true);\n\n useEffect(() => {\n setStages(spec);\n }, [spec]);\n\n useEffect(() => {\n if (initialRef.current) {\n initialRef.current = false;\n return;\n }\n if (stages) {\n onChange(stages);\n }\n }, [stages, onChange]);\n\n const getAIEmployeeName = useCallback(\n (employeeId: string | undefined) => {\n if (!employeeId) {\n return t(K.UNASSIGNED);\n }\n const employee = aiEmployees?.find((e) => e.employeeId === employeeId);\n return employee ? employee.name : employeeId;\n },\n [aiEmployees]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n addActivity(stage: Stage, activity: FlowActivity) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const prevActivities = updatedStage.serviceFlowActivities ?? [];\n\n if (prevActivities.find((a) => a.name === activity.name)) {\n // Activity with the same name already exists, return previous state\n showDialog({\n type: \"warn\",\n content: t(K.ACTIVITY_NAME_EXISTS, { name: activity.name }),\n });\n return prevList;\n }\n\n const updatedActivities = [...prevActivities, activity];\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n editActivity(\n stage: Stage,\n activity: FlowActivity,\n activityIndex: number\n ) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const prevActivities = updatedStage.serviceFlowActivities ?? [];\n\n if (\n prevActivities.find(\n (a, index) => a.name === activity.name && index !== activityIndex\n )\n ) {\n // Activity with the same name already exists, return previous state\n showDialog({\n type: \"warn\",\n content: t(K.ACTIVITY_NAME_EXISTS, { name: activity.name }),\n });\n return prevList;\n }\n\n const updatedActivities = [...prevActivities];\n if (activityIndex < 0 || activityIndex >= updatedActivities.length) {\n // Activity index out of bounds, return previous state\n return prevList;\n }\n updatedActivities[activityIndex] = activity;\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n deleteActivity(stage: Stage, activityIndex: number) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const updatedActivities = [\n ...(updatedStage.serviceFlowActivities ?? []),\n ];\n if (activityIndex < 0 || activityIndex >= updatedActivities.length) {\n // Activity index out of bounds, return previous state\n return prevList;\n }\n updatedActivities.splice(activityIndex, 1);\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n }),\n []\n );\n\n return (\n <div className=\"container\">\n <ul className=\"nav\">\n {stages?.map((stage, index) => (\n <StageNavItem\n key={index}\n stage={stage}\n readOnly={readOnly}\n otherStageNames={stages\n .filter((s) => s !== stage)\n .map((s) => s.name)}\n onNameChange={(newName) => {\n setStages((prev) => {\n const prevList = prev ?? [];\n const updatedStages = [...prevList];\n updatedStages[index] = {\n ...stage,\n name: newName,\n };\n return updatedStages;\n });\n }}\n onDelete={() => {\n setStages((prev) => {\n const prevList = prev ?? [];\n const updatedStages = prevList.filter((_, i) => i !== index);\n return updatedStages;\n });\n }}\n />\n ))}\n {addingStage && (\n <li className=\"nav-item pending\">\n <StageNameInput\n onDone={(stageName) => {\n setAddingStage(false);\n if (stageName) {\n setStages((prev) => {\n const prevList = prev ?? [];\n if (prevList.find((s) => s.name === stageName)) {\n // Stage with the same name already exists\n showDialog({\n type: \"warn\",\n content: t(K.STAGE_NAME_EXISTS, { name: stageName }),\n });\n return prevList;\n }\n return [...prevList, { name: stageName }];\n });\n }\n }}\n />\n </li>\n )}\n {!readOnly && (\n <li className=\"nav-add\">\n <button\n className=\"btn-add-stage\"\n onClick={() => setAddingStage(true)}\n >\n <WrappedIcon lib=\"antd\" icon=\"plus\" className=\"plus\" />\n {t(K.ADD_STAGE)}\n </button>\n </li>\n )}\n </ul>\n <div className=\"lanes\">\n {stages?.map((stage, index) => (\n <ul className=\"lane\" key={index}>\n {stage.serviceFlowActivities?.map((activity, activityIndex) => (\n <li key={activityIndex}>\n <div\n className=\"activity\"\n onClick={() => {\n if (!readOnly) {\n onEditActivity({ stage, activity, activityIndex });\n }\n }}\n >\n <div className=\"title\">{activity.name}</div>\n <div className=\"assignee\">\n <WrappedIcon\n lib=\"antd\"\n icon=\"user\"\n className=\"assignee-icon\"\n />\n {getAIEmployeeName(activity.aiEmployeeId)}\n </div>\n </div>\n </li>\n ))}\n {!readOnly && (\n <li>\n <button\n className=\"btn-add-activity\"\n onClick={() => onAddActivity(stage)}\n >\n <WrappedIcon lib=\"antd\" icon=\"plus\" />\n {t(K.ADD_ACTIVITY)}\n </button>\n </li>\n )}\n </ul>\n ))}\n </div>\n </div>\n );\n}\n\ninterface StageNameInputProps {\n onDone: (name: string) => void;\n}\n\nfunction StageNameInput({ onDone }: StageNameInputProps) {\n const compositionRef = useRef(false);\n\n return (\n <input\n className=\"input-new-stage\"\n type=\"text\"\n placeholder={t(K.PLEASE_ENTER_NAME)}\n autoFocus\n onCompositionStart={() => {\n compositionRef.current = true;\n }}\n onCompositionEnd={() => {\n compositionRef.current = false;\n }}\n onKeyDown={(e) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n const stageName = (e.target as HTMLInputElement).value.trim();\n onDone(stageName);\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n onDone(\"\");\n }\n }}\n onBlur={(e) => {\n const stageName = e.target.value.trim();\n onDone(stageName);\n }}\n />\n );\n}\n\ninterface StageNavItemProps {\n stage: Stage;\n otherStageNames: string[];\n readOnly?: boolean;\n onNameChange: (name: string) => void;\n onDelete: (stage: Stage) => void;\n}\n\nfunction StageNavItem({\n stage,\n otherStageNames,\n readOnly,\n onNameChange,\n onDelete,\n}: StageNavItemProps) {\n const compositionRef = useRef(false);\n const popoverRef = useRef<Popover>(null);\n\n if (readOnly) {\n return (\n <li className=\"nav-item\">\n <span className=\"nav-link\">\n <span>{stage.name}</span>\n </span>\n </li>\n );\n }\n\n return (\n <li className=\"nav-item\">\n <WrappedPopover\n trigger=\"click\"\n placement=\"bottom\"\n sync=\"width\"\n arrow={false}\n distance={8}\n themeVariant=\"elevo\"\n ref={popoverRef}\n >\n <button className=\"nav-link\" slot=\"anchor\" title={stage.name}>\n <span>{stage.name}</span>\n </button>\n <div className=\"stage-settings\">\n <WrappedInput\n value={stage.name}\n themeVariant=\"elevo\"\n onCompositionStart={() => {\n compositionRef.current = true;\n }}\n onCompositionEnd={() => {\n compositionRef.current = false;\n }}\n onBlur={(e) => {\n const newValue = (e.currentTarget as Input).value?.trim();\n if (newValue && newValue !== stage.name) {\n if (otherStageNames.includes(newValue)) {\n // Stage with the same name already exists\n showDialog({\n type: \"warn\",\n content: t(K.STAGE_NAME_EXISTS, { name: newValue }),\n });\n (e.currentTarget as Input).value = stage.name;\n } else {\n onNameChange(newValue);\n }\n } else if (!newValue) {\n (e.currentTarget as Input).value = stage.name;\n }\n }}\n onKeyDown={(e) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n popoverRef.current!.active = false;\n }\n }}\n />\n <div className=\"divider\" />\n <button\n onClick={async () => {\n popoverRef.current!.active = false;\n await showDialog({\n type: \"delete\",\n title: t(K.DELETE_STAGE),\n content: t(K.DELETE_STAGE_TIPS, { name: stage.name }),\n });\n onDelete(stage);\n }}\n >\n {t(K.DELETE)}\n </button>\n </div>\n </WrappedPopover>\n </li>\n );\n}\n","import * as React from \"react\";\nconst SvgStage = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"currentColor\" stroke=\"currentColor\" aria-hidden=\"true\" viewBox=\"0 0 20 26\" {...props}><g fillRule=\"evenodd\"><path d=\"M12 9H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1zm0 10H8a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1zM10 7v9\" /><path strokeLinecap=\"round\" d=\"M17.112 16.112h-4.224\" /></g></svg>;\nexport default SvgStage;","import React, { useEffect, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport {\n GeneralIcon,\n type GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./styles.shadow.css\";\nimport type { JobState, TaskState } from \"../shared/interfaces.js\";\nimport StageIcon from \"./images/stage.svg\";\nimport classNames from \"classnames\";\nimport { getFlowOrActivityIcon } from \"../shared/getFlowOrActivityIcon\";\nimport { formatDuration } from \"./formatDuration\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface RunningFlowProps {\n spec?: FlowStage[];\n activeActivityId?: string | null;\n}\n\nexport interface FlowStage {\n name: string;\n serviceFlowActivities?: FlowActivity[];\n}\n\nexport interface FlowActivity {\n name: string;\n taskId?: string;\n state?: TaskState | JobState;\n startTime?: number;\n endTime?: number;\n}\n\nexport interface RunningFlowEvents {\n \"active.change\": CustomEvent<string | null>;\n}\n\nexport interface RunningFlowMapEvents {\n onActiveChange: \"active.change\";\n}\n\n/**\n * 构件 `ai-portal.running-flow`\n */\nexport\n@defineElement(\"ai-portal.running-flow\", {\n styleTexts: [styleText],\n})\nclass RunningFlow extends ReactNextElement implements RunningFlowProps {\n @property({ attribute: false })\n accessor spec: FlowStage[] | undefined;\n\n @property()\n accessor activeActivityId: string | null | undefined;\n\n @event({ type: \"active.change\" })\n accessor #activeChange!: EventEmitter<string | null>;\n\n #handleActiveChange = (activityId: string | null) => {\n this.#activeChange?.emit(activityId);\n };\n\n render() {\n return (\n <RunningFlowComponent\n spec={this.spec}\n activeActivityId={this.activeActivityId}\n onActiveChange={this.#handleActiveChange}\n />\n );\n }\n}\n\ninterface RunningFlowComponentProps extends RunningFlowProps {\n onActiveChange: (activityId: string | null) => void;\n}\n\nfunction RunningFlowComponent({\n spec: stages,\n activeActivityId,\n onActiveChange,\n}: RunningFlowComponentProps) {\n const [activeId, setActiveId] = useState(activeActivityId || null);\n\n useEffect(() => {\n setActiveId(activeActivityId || null);\n }, [activeActivityId]);\n\n return (\n <div className=\"container\">\n <ul className=\"nav\">\n {stages?.map((stage, index) => (\n <li key={index} className=\"nav-item\">\n <div className=\"nav-content\">\n <span className=\"icon\">\n <StageIcon />\n </span>\n <div className=\"title\">{stage.name}</div>\n </div>\n </li>\n ))}\n </ul>\n <div className=\"lanes\">\n {stages?.map((stage, index) => (\n <ul className=\"lane\" key={index}>\n {stage.serviceFlowActivities?.map((activity, activityIndex) => (\n <li key={activityIndex}>\n <div\n className={classNames(\n \"activity\",\n getActivityStateClassName(activity.state),\n {\n active: activeId && activity.taskId === activeId,\n }\n )}\n onClick={() => {\n if (activity.taskId && activeId !== activity.taskId) {\n setActiveId(activity.taskId);\n onActiveChange(activity.taskId);\n }\n }}\n >\n <WrappedIcon\n {...getFlowOrActivityIcon(activity.state)}\n className=\"icon\"\n />\n <div className=\"title\">{activity.name}</div>\n {activity.startTime != null && activity.endTime != null && (\n <Duration\n startTime={activity.startTime}\n endTime={activity.endTime}\n state={activity.state}\n />\n )}\n </div>\n </li>\n ))}\n </ul>\n ))}\n </div>\n </div>\n );\n}\n\nfunction getActivityStateClassName(state: TaskState | JobState | undefined) {\n switch (state) {\n case \"input-required\":\n return \"paused\";\n case \"completed\":\n return \"completed\";\n case \"failed\":\n return \"failed\";\n case \"working\":\n return \"working\";\n default:\n return \"default\";\n }\n}\n\ninterface DurationProps {\n startTime: number | undefined;\n endTime: number | undefined;\n state: TaskState | JobState | undefined;\n}\n\nfunction Duration({ startTime, endTime, state }: DurationProps) {\n const [end, setEnd] = useState(endTime);\n const countTime = startTime != null && endTime == null && state === \"working\";\n\n useEffect(() => {\n if (endTime != null) {\n setEnd(endTime);\n }\n }, [endTime]);\n\n useEffect(() => {\n if (countTime) {\n const setEndTime = () => {\n setEnd(Date.now() / 1e3);\n };\n setEndTime();\n const interval = setInterval(setEndTime, 1e3);\n return () => clearInterval(interval);\n }\n }, [countTime]);\n\n if (startTime == null || end == null) {\n return null;\n }\n\n return <div className=\"duration\">{formatDuration(end - startTime)}</div>;\n}\n","/**\n * Format duration as \"00:12\"\n *\n * @param duration in seconds\n */\nexport function formatDuration(duration: number): string {\n const ceilDuration = Math.ceil(duration);\n const minutes = Math.floor(ceilDuration / 60);\n const seconds = ceilDuration % 60;\n return `${String(minutes).padStart(2, \"0\")}:${String(seconds).padStart(2, \"0\")}`;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MESSAGE_LIST = \"MESSAGE_LIST\",\n NO_NEW_MESSAGE = \"NO_NEW_MESSAGE\",\n MARK_ALL_READ = \"MARK_ALL_READ\",\n ENTER_MESSAGE_CENTER = \"ENTER_MESSAGE_CENTER\",\n}\n\nconst en: Locale = {\n MESSAGE_LIST: \"Message List\",\n NO_NEW_MESSAGE: \"No new messages for now\",\n MARK_ALL_READ: \"Mark all as read\",\n ENTER_MESSAGE_CENTER: \"Enter Message Center\",\n};\n\nconst zh: Locale = {\n MESSAGE_LIST: \"消息列表\",\n NO_NEW_MESSAGE: \"暂无新消息\",\n MARK_ALL_READ: \"全部已读\",\n ENTER_MESSAGE_CENTER: \"进入消息中心\",\n};\n\nexport const NS = \"bricks/ai-portal/notice-dropdown\";\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, useCallback, useEffect, useRef } 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 { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n Placement,\n} from \"@next-bricks/basic/popover\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { Link, LinkProps, Target } from \"@next-bricks/basic/link\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport { EoCounterBadge, BadgeProps } from \"@next-bricks/basic/counter-badge\";\nimport { IconButton, IconButtonProps } from \"../icon-button/index.js\";\nimport { NoticeItem } from \"../shared/interfaces.js\";\n\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport projectNotifySvg from \"./images/project-notify.svg?url\";\nimport accountNotifySvg from \"./images/account-notify.svg?url\";\nimport systemNotifySvg from \"./images/system-notify.svg?url\";\nimport spaceNotifySvg from \"./images/space-notify.svg?url\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\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 WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrapperCounterBadge = wrapBrick<EoCounterBadge, BadgeProps>(\n \"eo-counter-badge\"\n);\nconst WrapperIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nexport interface NoticeDropdownProps {\n /** 消息数据列表 */\n dataSource?: NoticeItem[];\n /** 弹窗位置 */\n popoverPlacement?: Placement;\n /** 空状态文案 */\n emptyText?: string;\n /** 通知中心URL */\n notifyCenterUrl?: string;\n /** 详情链接 */\n urlTemplate?: string;\n /** 下拉框最大宽度 */\n dropdownMaxWidth?: string | number;\n /** 下拉框内容样式 */\n dropdownContentStyle?: React.CSSProperties;\n /** 是否隐藏进入消息中心按钮 */\n hideNotifyCenterButton?: boolean;\n /** 详情链接目标 */\n urlTarget?: Target;\n}\n\n/**\n * 构件 `ai-portal.notice-dropdown`\n *\n * 消息通知下拉框构件,用于展示消息列表\n */\nexport\n@defineElement(\"ai-portal.notice-dropdown\", {\n styleTexts: [styleText],\n})\nclass NoticeDropdown extends ReactNextElement implements NoticeDropdownProps {\n /** 消息数据列表 */\n @property({ attribute: false })\n accessor dataSource: NoticeItem[] | undefined;\n\n /**\n * 弹窗位置\n */\n @property()\n accessor popoverPlacement: Placement | undefined;\n\n /** 空状态文案 */\n @property()\n accessor emptyText: string | undefined;\n\n /** 通知中心URL */\n @property()\n accessor notifyCenterUrl: string | undefined;\n\n /** 详情链接 */\n @property()\n accessor urlTemplate: string | undefined;\n\n /** 详情链接目标 */\n @property()\n accessor urlTarget: Target | undefined;\n\n /** 下拉框最大宽度 */\n @property()\n accessor dropdownMaxWidth: string | number | undefined;\n\n /** 下拉框内容样式 */\n @property({ attribute: false })\n accessor dropdownContentStyle: React.CSSProperties | undefined;\n\n /** 是否隐藏进入消息中心按钮 */\n @property({ type: Boolean })\n accessor hideNotifyCenterButton: boolean | undefined;\n\n /**\n * 消息项点击事件\n * @detail 消息 ID\n */\n @event({ type: \"notice.click\" })\n accessor #noticeClickEvent!: EventEmitter<NoticeItem>;\n\n /**\n * 全部已读点击事件\n */\n @event({ type: \"mark.all.read\" })\n accessor #markAllReadEvent!: EventEmitter<void>;\n\n #handleNoticeClick = (item: NoticeItem) => {\n this.#noticeClickEvent.emit(item);\n };\n\n #handleMarkAllRead = () => {\n this.#markAllReadEvent.emit();\n };\n\n render() {\n return (\n <NoticeDropdownComponent\n dataSource={this.dataSource}\n popoverPlacement={this.popoverPlacement}\n emptyText={this.emptyText}\n onNoticeClick={this.#handleNoticeClick}\n urlTemplate={this.urlTemplate}\n dropdownMaxWidth={this.dropdownMaxWidth}\n notifyCenterUrl={this.notifyCenterUrl}\n dropdownContentStyle={this.dropdownContentStyle}\n onMarkAllRead={this.#handleMarkAllRead}\n hideNotifyCenterButton={this.hideNotifyCenterButton}\n urlTarget={this.urlTarget}\n />\n );\n }\n}\n\ninterface NoticeDropdownComponentProps extends NoticeDropdownProps {\n onNoticeClick: (item: NoticeItem) => void;\n onMarkAllRead: () => void;\n}\n\nfunction NoticeDropdownComponent({\n dataSource = [],\n popoverPlacement,\n emptyText,\n notifyCenterUrl,\n urlTemplate,\n dropdownMaxWidth,\n dropdownContentStyle,\n onNoticeClick,\n onMarkAllRead,\n hideNotifyCenterButton,\n urlTarget,\n}: NoticeDropdownComponentProps) {\n const [open, setOpen] = useState(false);\n const popoverRef = useRef(null);\n const handleBeforeVisibleChange = useCallback((e: CustomEvent<boolean>) => {\n setOpen(e.detail);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleNoticeItemClick = useCallback(\n (item: NoticeItem) => {\n onNoticeClick(item);\n },\n [onNoticeClick]\n );\n\n const handleMarkAllReadClick = useCallback(() => {\n onMarkAllRead();\n }, [onMarkAllRead]);\n\n // 添加外部点击检测,兼容在某些场景下没有触发关闭浮层的问题\n /* istanbul ignore next */\n useEffect(() => {\n if (!open) return;\n\n const handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath?.() || [];\n\n const isInsideNoticeDropdown = path.some((element) => {\n if (element instanceof HTMLElement) {\n return element === popoverRef.current;\n }\n return false;\n });\n\n if (!isInsideNoticeDropdown) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, [open]);\n\n return (\n <WrappedPopover\n className=\"popover\"\n placement={popoverPlacement}\n trigger=\"click\"\n active={open}\n arrow={false}\n distance={8}\n ref={popoverRef}\n onBeforeVisibleChange={handleBeforeVisibleChange}\n >\n <span slot=\"anchor\">\n <slot name=\"trigger\">\n <WrapperCounterBadge\n showZero={false}\n dot={true}\n count={dataSource?.length ?? 0}\n offset={[-5, 0]}\n >\n <WrapperIconButton icon={{ lib: \"antd\", icon: \"bell\" }} />\n </WrapperCounterBadge>\n </slot>\n </span>\n <div\n className=\"notice-dropdown-content\"\n style={{ maxWidth: dropdownMaxWidth }}\n >\n <div className=\"header\">\n <div className=\"title\">{t(K.MESSAGE_LIST)}</div>\n <div className=\"close-btn\" onClick={handleClose}>\n <WrappedIcon lib=\"antd\" icon=\"close\" />\n </div>\n </div>\n\n <div className=\"content\" style={dropdownContentStyle}>\n {dataSource?.length > 0 ? (\n <ul className=\"message-list\">\n {dataSource.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className=\"link\"\n url={parseTemplate(urlTemplate, item)}\n target={urlTarget}\n onClick={() => handleNoticeItemClick(item)}\n >\n <div className=\"icon-wrapper\">\n <WrappedIcon\n imgSrc={getNotifyIcon(item.type)}\n keepSvgOriginalColor={true}\n />\n </div>\n <div className=\"message-content\">\n <div className=\"primary-text\">{item.title}</div>\n {item.description && (\n <div className=\"secondary-text\">{item.description}</div>\n )}\n </div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"empty-state\">\n {emptyText || t(K.NO_NEW_MESSAGE)}\n </div>\n )}\n </div>\n\n <div className=\"footer\">\n <WrappedButton\n disabled={!dataSource?.length}\n type=\"text\"\n className=\"footer-button\"\n onClick={handleMarkAllReadClick}\n >\n {t(K.MARK_ALL_READ)}\n </WrappedButton>\n {!hideNotifyCenterButton && (\n <WrappedButton\n href={notifyCenterUrl}\n type=\"text\"\n className=\"footer-button\"\n >\n {t(K.ENTER_MESSAGE_CENTER)} &gt;\n </WrappedButton>\n )}\n </div>\n </div>\n </WrappedPopover>\n );\n}\n\nexport function getNotifyIcon(type: string): string {\n switch (type) {\n case \"project\":\n return projectNotifySvg;\n case \"account\":\n return accountNotifySvg;\n case \"system\":\n return systemNotifySvg;\n case \"space\":\n return spaceNotifySvg;\n default:\n return projectNotifySvg;\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MARK_READ = \"MARK_READ\",\n MARK_ALL_READ = \"MARK_ALL_READ\",\n NO_MESSAGE = \"NO_MESSAGE\",\n}\n\nconst en: Locale = {\n MARK_READ: \"Mark as read\",\n MARK_ALL_READ: \"Mark all as read\",\n NO_MESSAGE: \"No messages\",\n};\n\nconst zh: Locale = {\n MARK_READ: \"标记已读\",\n MARK_ALL_READ: \"全部已读\",\n NO_MESSAGE: \"暂无消息\",\n};\n\nexport const NS = \"bricks/ai-portal/notice-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, {\n useState,\n useCallback,\n useMemo,\n useEffect,\n useRef,\n} from \"react\";\nimport classNames from \"classnames\";\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 { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { NoticeItem } from \"../shared/interfaces.js\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { Link, LinkProps, Target } from \"@next-bricks/basic/link\";\nimport type {\n Checkbox,\n CheckboxProps,\n CheckboxValueType,\n} from \"@next-bricks/form/checkbox\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { getNotifyIcon } from \"../notice-dropdown/index.js\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface CheckboxEvents {\n change: CustomEvent<CheckboxValueType[]>;\n}\n\nexport interface CheckboxMapping {\n onValuesChange: \"change\";\n}\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedCheckbox = wrapBrick<\n Checkbox,\n CheckboxProps,\n CheckboxEvents,\n CheckboxMapping\n>(\"eo-checkbox\", {\n onValuesChange: \"change\",\n});\n\nexport interface NoticeListProps {\n /** 消息数据列表 */\n dataSource?: NoticeItem[];\n /** 空状态文案 */\n emptyText?: string;\n /** 详情链接 */\n urlTemplate?: string;\n /** 详情链接目标 */\n urlTarget?: Target;\n /** 选中的消息 ID 数组 */\n selectedIds?: string[];\n}\n\n/**\n * 构件 `ai-portal.notice-list`\n *\n * 消息通知列表构件,用于展示消息列表,支持批量操作\n */\nexport\n@defineElement(\"ai-portal.notice-list\", {\n styleTexts: [styleText],\n})\nclass NoticeList extends ReactNextElement implements NoticeListProps {\n /** 消息数据列表 */\n @property({ attribute: false })\n accessor dataSource: NoticeItem[] | undefined;\n\n /** 空状态文案 */\n @property()\n accessor emptyText: string | undefined;\n\n /** 详情链接 */\n @property()\n accessor urlTemplate: string | undefined;\n\n /** 详情链接目标 */\n @property()\n accessor urlTarget: Target | undefined;\n\n /** 选中的消息 ID 数组 */\n @property({ attribute: false })\n accessor selectedIds: string[] | undefined;\n\n /**\n * 消息项点击事件\n * @detail 消息项数据\n */\n @event({ type: \"notice.click\" })\n accessor #noticeClickEvent!: EventEmitter<NoticeItem>;\n\n /**\n * 标记消息项已读事件\n * @detail 选中的消息 ID 数组\n */\n @event({ type: \"mark.items.read\" })\n accessor #markItemsReadEvent!: EventEmitter<NoticeItem[]>;\n\n /**\n * 全部已读事件\n */\n @event({ type: \"mark.all.read\" })\n accessor #markAllReadEvent!: EventEmitter<void>;\n\n #handleNoticeClick = (item: NoticeItem) => {\n this.#noticeClickEvent.emit(item);\n };\n\n #handleMarkItemsRead = (items: NoticeItem[]) => {\n this.#markItemsReadEvent.emit(items);\n };\n\n #handleMarkAllRead = () => {\n this.#markAllReadEvent.emit();\n };\n\n render() {\n return (\n <NoticeListComponent\n dataSource={this.dataSource}\n emptyText={this.emptyText}\n onNoticeClick={this.#handleNoticeClick}\n onMarkItemsRead={this.#handleMarkItemsRead}\n onMarkAllRead={this.#handleMarkAllRead}\n selectedIds={this.selectedIds}\n urlTemplate={this.urlTemplate}\n urlTarget={this.urlTarget}\n />\n );\n }\n}\n\ninterface NoticeListComponentProps extends NoticeListProps {\n onNoticeClick: (item: NoticeItem) => void;\n onMarkItemsRead: (items: NoticeItem[]) => void;\n onMarkAllRead: () => void;\n}\n\ninterface NoticeListItemProps {\n item: NoticeItem;\n selected: boolean;\n urlTemplate?: string;\n urlTarget?: Target;\n onSelectItem: (id: string, checked: boolean) => void;\n onNoticeClick: (item: NoticeItem) => void;\n}\n\nfunction NoticeListComponent({\n dataSource = [],\n emptyText,\n onNoticeClick,\n onMarkItemsRead,\n onMarkAllRead,\n urlTemplate,\n urlTarget,\n selectedIds: _selectedIds,\n}: NoticeListComponentProps) {\n const [selectedIds, setSelectedIds] = useState<Set<string>>(\n new Set(_selectedIds || [])\n );\n\n const currentAllIds = useMemo(() => {\n // 过滤当前已读的项目,只有未读的项目可以选中\n return (\n dataSource?.filter((item) => item.isUnread).map((item) => item.id) || []\n );\n }, [dataSource]);\n\n const isAllSelected = useMemo(() => {\n return (\n currentAllIds.length > 0 &&\n currentAllIds.every((id) => selectedIds.has(id))\n );\n }, [currentAllIds, selectedIds]);\n\n const handleSelectAll = useCallback(\n (checked: boolean) => {\n const newSelectedIds = new Set(checked ? currentAllIds : []);\n setSelectedIds(newSelectedIds);\n },\n [currentAllIds]\n );\n\n const handleSelectItem = useCallback(\n (id: string, checked: boolean) => {\n const newSelectedIds = checked\n ? new Set([...selectedIds, id])\n : new Set(\n Array.from(selectedIds).filter((selectedId) => selectedId !== id)\n );\n\n setSelectedIds(newSelectedIds);\n },\n [selectedIds]\n );\n\n const handleNoticeItemClick = useCallback(\n (item: NoticeItem) => {\n onNoticeClick(item);\n },\n [onNoticeClick]\n );\n\n useEffect(() => {\n setSelectedIds(new Set(_selectedIds || []));\n }, [_selectedIds]);\n\n return (\n <div>\n <div className=\"toolbar\">\n <WrappedCheckbox\n themeVariant=\"elevo\"\n className=\"all-checkbox\"\n options={[{ label: \"\", value: \"selectAll\" }]}\n value={isAllSelected ? [\"selectAll\"] : []}\n onValuesChange={(e) => handleSelectAll(!!e.detail?.length)}\n />\n\n <WrappedButton\n className=\"read-link\"\n type=\"link\"\n themeVariant=\"elevo\"\n disabled={selectedIds.size === 0}\n onClick={() =>\n onMarkItemsRead(\n dataSource.filter((item) => selectedIds.has(item.id))\n )\n }\n >\n {t(K.MARK_READ)}\n </WrappedButton>\n <WrappedButton\n className=\"read-link\"\n type=\"link\"\n onClick={onMarkAllRead}\n themeVariant=\"elevo\"\n >\n {t(K.MARK_ALL_READ)}\n </WrappedButton>\n </div>\n\n <div className=\"content\">\n {dataSource?.length > 0 ? (\n <ul className=\"message-list\">\n {dataSource.map((item) => (\n <li key={item.id}>\n <NoticeListItem\n item={item}\n selected={selectedIds.has(item.id)}\n urlTemplate={urlTemplate}\n urlTarget={urlTarget}\n onSelectItem={handleSelectItem}\n onNoticeClick={handleNoticeItemClick}\n />\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"empty-state\">{emptyText || t(K.NO_MESSAGE)}</div>\n )}\n </div>\n </div>\n );\n}\n\nfunction NoticeListItem({\n item,\n selected,\n urlTemplate,\n urlTarget,\n onSelectItem,\n onNoticeClick,\n}: NoticeListItemProps) {\n const checkboxRef = useRef<Checkbox>(null);\n\n // stop propagation and prevent default manually in eo-link\n useEffect(() => {\n const el = checkboxRef.current;\n if (!el) return;\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n el.addEventListener(\"click\", handleClick);\n return () => {\n el.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n return (\n <WrappedLink\n className={classNames(\"message-item-link\", {\n \"has-read\": !item.isUnread,\n })}\n url={parseTemplate(urlTemplate, item)}\n target={urlTarget}\n onClick={() => onNoticeClick(item)}\n >\n <div className=\"left\">\n <WrappedCheckbox\n ref={checkboxRef}\n disabled={!item.isUnread}\n themeVariant=\"elevo\"\n className=\"item-checkbox\"\n options={[{ label: \"\", value: item.id }]}\n value={selected ? [item.id] : []}\n onValuesChange={(e) => {\n onSelectItem(item.id, !!e.detail?.length);\n }}\n />\n <div className=\"icon-wrapper\">\n <WrappedIcon\n imgSrc={getNotifyIcon(item.type)}\n keepSvgOriginalColor={true}\n />\n </div>\n <div className=\"title\" title={item.title}>\n {item.title}\n </div>\n </div>\n\n <div className=\"right\">\n <div className=\"message-time\">\n {humanizeTime(item.time, HumanizeTimeFormat.relative)}\n </div>\n </div>\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\";\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:12px 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,.goal-item:has(.title:focus){background-color:rgba(0,0,0,0.05)}.goal-item:has(.title:focus) .end .operation{display:flex}.goal-item:hover:not(.does-not-exist) .end .operation{display:flex}.goal-item:has(.title:focus) .end .info{display:none}.goal-item:hover:not(.does-not-exist) .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;align-items:center;gap:8px}.goal-item .end .operation eo-button::part(button){height:28px}.goal-item .end .operation .new-chat::part(button){padding:5px 10px;font-size:13px}.goal-item .end .operation .append-child::part(button){padding:5px 8px;font-size:14px}.goal-item .end .info{display:inline-flex;align-items:center;column-gap:24px}.goal-item .serial-number{font-weight:400;color:var(--palette-gray-7);font-size:16px;overflow:visible}.goal-item .title{font-weight:500;padding:2px 4px;font-size:16px;color:var(--palette-gray-10);border:1px solid transparent;border-radius:8px;cursor:pointer;min-width:80px}.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:6px;position:relative;top:2px}.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)}button:focus,\ntextarea:focus{outline:none}button{margin:0;padding:0;font:inherit;background:none;border:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:6px}.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}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}.buttons{display:flex;align-items:center;gap:12px}.btn-divider{width:1px;height:16px;background:rgba(0,0,0,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;--elevo-icon-button-icon-size:18px}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{height:28px;padding:0 5px;font-size:14px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}.icon{font-size:var(--elevo-icon-button-icon-size)}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)}.has-slotted .icon{margin-right:8px}:host([reduce-icon-size]) button{--elevo-icon-button-icon-size:16px;padding:0 6px}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{height:24px;--elevo-icon-button-icon-size:16px;padding:0 4px;border-radius:4px}:host([variant=\"mini-light\"]) button{color:#8c8c8c;height:20px;--elevo-icon-button-icon-size:14px;padding:0 3px;border-radius:4px}:host([variant=\"bordered\"]) button{background:#ffffff;border-radius:8px;border:1px solid rgba(0,0,0,0.1);color:#595959;height:32px;--elevo-icon-button-icon-size:18px;padding:0 7px}button.has-slotted{padding:0 8px}: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(\"../home-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;position:relative;width:100%;height:100%;color:#262626;padding:48px 54px;overflow:hidden;overflow-y:auto}:host::before{content:\"\";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([sticky]){padding-top:0}:host([hidden]){display:none}:host([variant=\"form\"])::before{background:#fff}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}:host([size=\"small\"]) .container{max-width:1000px}:host([size=\"full\"]) .container{max-width:100%}.sticky-header{margin:0 -24px;padding:65px 24px 30px}.non-sticky-header{padding:17px 0 30px}.header{display:flex;justify-content:space-between;align-items:center}nav{font-weight:500;font-size:20px;line-height:28px;display:flex;min-width:0;white-space:nowrap;flex-wrap:wrap}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}}`, \"\"]);\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","// 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;--running-flow-lane-width:234px;--running-flow-status-color:#aeb3bc}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.nav,\n.lanes{display:flex;gap:40px}.nav-item,\n.lane{width:var(--running-flow-lane-width);flex-shrink:0}.nav-item{position:relative;background-color:#e3e4e5;border-top-left-radius:8px;border-bottom-left-radius:8px}.nav-item::after{content:\"\";position:absolute;top:0;right:-24px;border-color:transparent;border-style:solid;border-width:24px 0 24px 24px;border-left-color:#e3e4e5}.nav-content{height:48px;display:flex;align-items:center;padding-left:22px}.nav-content .icon{color:#8c8c8c;font-size:22px;display:contents}.nav-content .title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px}.lanes{margin-top:16px}.lane{display:flex;flex-direction:column;gap:8px}.lane > li{padding-left:4px}.activity{background:#fff;border-radius:8px;border:1px solid #d9d9d9;height:42px;display:flex;align-items:center;position:relative;padding-left:16px;cursor:pointer}.activity .icon{color:var(--running-flow-status-color);font-size:20px}.activity .title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#595959;padding:0 7px}.activity .duration{font-size:12px;color:#8c8c8c;background:#fafafa;border-radius:6px;padding:0 8px;height:100%;display:flex;align-items:center}.activity::before{content:\"\";position:absolute;top:50%;left:-1px;transform:translateY(-50%);width:3px;height:18px;background:var(--running-flow-status-color);border-radius:0 3px 3px 0}.activity:hover{box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08)}.activity.paused{--running-flow-status-color:#f0a22e}.activity.working{--running-flow-status-color:#4f69ff}.activity.completed{--running-flow-status-color:#08bf33}.activity.failed{--running-flow-status-color:var(--color-error)}.activity:not(.active) .icon{color:var(--running-flow-status-color)}.activity:not(.active)::before{background:var(--running-flow-status-color)}.activity.active{background:var(--running-flow-status-color);border-color:var(--running-flow-status-color)}.activity.active .icon,.activity.active .title,.activity.active .duration{color:#fff}.activity.active .duration{background:rgba(250,250,250,0.2)}.activity.active::before{display:none}`, \"\"]);\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/add-stage.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/add-stage-hover.svg\", 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___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--stage-flow-lane-width:268px}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}button{background:none;border:none;cursor:pointer;padding:0}.button:focus{outline:none}.nav,\n.lanes{display:flex;gap:40px}.nav-item,\n.nav-add,\n.lane{width:var(--stage-flow-lane-width);flex-shrink:0}.nav-item{position:relative;background-color:var(--stage-flow-nav-bg);--stage-flow-nav-bg:rgba(37,64,255,0.1)}.nav-item:first-child{border-top-left-radius:20px;border-bottom-left-radius:20px}.nav-item.pending{--stage-flow-nav-bg:rgba(0,0,0,0.04)}.nav-item::after{content:\"\";position:absolute;top:0;right:-20px;border-color:transparent;border-style:solid;border-width:20px 0 20px 20px;border-left-color:var(--stage-flow-nav-bg)}.nav-item:not(:first-child)::before{content:\"\";position:absolute;top:0;left:-30px;width:30px;height:40px;background-color:var(--stage-flow-nav-bg);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%,20px 50%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,20px 50%)}.nav-link,\n.btn-add-stage{width:100%;display:flex;align-items:center;justify-content:center;height:40px;font-size:16px}.nav-item.pending:first-child .input-new-stage{padding-left:20px}.nav-link{font-weight:600;color:#000}.nav-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-add-stage{font-weight:500;color:rgba(0,0,0,0.65);gap:8px;position:relative}.btn-add-stage .plus{margin-right:8px;font-size:14px}.nav-add:first-child .btn-add-stage{border-radius:20px;border:1px dashed rgba(0,0,0,0.1)}.nav-add:first-child .btn-add-stage:hover{background:rgba(0,0,0,0.04)}.nav-add:not(:first-child) .btn-add-stage::before{content:\"\";position:absolute;top:0;bottom:0;left:-30px;right:-20px;pointer-events:none;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) center center no-repeat}.nav-add:not(:first-child) .btn-add-stage:hover::before{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.input-new-stage{width:100%;border:none;background:none;display:flex;align-items:center;height:40px;font-weight:600;font-size:16px;color:#000}.input-new-stage::placeholder{color:#8c8c8c;font-weight:400}.input-new-stage:focus{outline:none}.lanes{margin-top:16px}.lane{display:flex;flex-direction:column;gap:8px}.activity{background:#ffffff;box-shadow:0px 1px 2px 0px rgba(0,0,0,0.1);border-radius:8px;padding:12px 14px 10px}.activity .title{font-weight:600;color:#000000;line-height:20px;text-shadow:0px 1px 2px rgba(0,0,0,0.1)}:host(:not([read-only])) .activity{cursor:pointer}.assignee{display:flex;align-items:center;gap:4px;font-size:12px;color:#000000;line-height:17px;margin-top:10px}.assignee-icon{font-size:14px;color:rgba(0,0,0,0.45)}.btn-add-activity{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;height:34px;border:1px dashed rgba(0,0,0,0.1);border-radius:8px;color:rgba(0,0,0,0.45)}.btn-add-activity:hover{background:rgba(0,0,0,0.04);color:rgba(0,0,0,0.65)}.stage-settings{padding:4px;display:flex;flex-direction:column;align-items:stretch;gap:4px}.stage-settings eo-input{margin-bottom:5px}.stage-settings .divider{height:1px;background-color:rgba(0,0,0,0.1)}.stage-settings button{color:var(--color-error);border-radius:6px;padding:5px 8px;font-size:14px;line-height:22px;text-align:left}.stage-settings button:hover{background-color:var(--left-sidebar-item-hover-bg)}`, \"\"]);\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;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(\"../home-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;position:sticky;top:0}:host([hidden]){display:none}:host::before{content:\"\";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed;pointer-events:none}:host([variant=\"home\"])::before{background-color:#f1f1f1}`, \"\"]);\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:72px 54px 72px}:host([sticky]){padding-top:0}: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(\"../home-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}button:focus,\ntextarea:focus{outline:none}button{margin:0;padding:0;font:inherit;background:none;border:none}.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{position:relative;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:6px 0 6px 8px;margin-left:auto;display:flex;align-items:center;gap:12px}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);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}.btn-divider{width:1px;height:16px;background:rgba(0,0,0,0.1)}.files.condensed{top:2px;left:8px;right:8px}`, \"\"]);\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(\"../home-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}h2{font-weight:500;margin:0;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;overflow:hidden}.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}.sticky-tabs{margin:0 -24px;padding:0 24px 10px}.non-sticky-tabs{padding:0 0 10px}`, \"\"]);\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___","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedCruiseCanvasComponent","forwardRef","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_CruiseCanvas_brand","WeakSet","_onShare","_U","_onTerminate","_V","_onSubmitFeedback","_W","_onFeedbackOnView","_X","_onSwitchToChat","_Y","_onDetailChange","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_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_separateInstructions","_init_extra_separateInstructions","_init_uploadOptions","_init_extra_uploadOptions","_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","replay","replayDelay","supports","showHiddenJobs","showHumanActions","showFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","separateInstructions","uploadOptions","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","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","getCaretPositionInTextarea","textarea","index","document","createElement","setAttribute","body","appendChild","getMirroredStyle","textContent","value","slice","span","rect","getBoundingClientRect","remove","top","left","getContentRectsInTextarea","prefix","measureContent","fullRect","length","leadingChar","leadingSpan","leadingRect","trailingChar","trailingSpan","trailingRect","rects","DOMRect","right","bottom","height","width","K","en","ASK_ANY_THING","COMMON_TASKS","COMMAND_TIPS","SEARCH_COMMANDS_TIPS","zh","t","i18n","getFixedT","chatCommand","setChatCommand","command","getChatCommand","customElements","define","createProviderClass","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","ChatBoxComponent","LegacyChatBoxComponent","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_handleChatSubmit","_handleCommandSelect","ChatBox","_defineProperty","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_init_messageSubmit","_init_extra_messageSubmit","_get_messageSubmit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","_init_commandSelect","_init_extra_commandSelect","_get_commandSelect","disabled","placeholder","autoFocus","aiEmployees","commands","setValue","_this$ref$current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","onMessageSubmit","onChatSubmit","onCommandSelect","root","propCommands","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionOverlay","setMentionOverlay","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","commandPrefix","setCommandPrefix","setCommands","setCommand","mentioned","setMentioned","commandPopover","setCommandPopover","commandOverlay","setCommandOverlay","commandText","setCommandText","selectionRef","useEffect","uploadEnabled","enabled","uploadAccept","accept","files","resetFiles","appendFiles","removeFile","hasFiles","allFilesDone","fileInfos","exceeded","paste","useFilesUploading","store","window","__elevo_try_it_out","content","useImperativeHandle","_textareaRef$current","focus","sendDisabled","doSubmit","useCallback","cmd","aiEmployeeId","handleSubmit","currentTarget","showMentionSuggestions","employees","selectionStart","selectionEnd","previousContent","startsWith","mentionText","toLowerCase","matchedEmployees","filter","employee","employeeId","includes","name","position","textareaRect","style","zIndex","range","start","end","actions","map","key","text","data","showCommandSuggestions","commandList","searchText","matchedCommands","_command$groupLabel","label","groupLabel","popover","getCommandPopover","mentionInitializedRef","_textareaRef$current2","_root$shadowRoot","element","activeElement","shadowRoot","commandsInitializedRef","_textareaRef$current3","_root$shadowRoot2","handleChange","target","handleSubmitClick","Promise","resolve","then","_textareaRef$current4","_textareaRef$current5","_textareaRef$current6","useMemo","_textareaRef$current7","commandStr","handleMention","action","_textareaRef$current8","mention","newValue","handleSelectCommand","_textareaRef$current9","hasSubCommands","subCommands","replace","setTimeout","handleKeyDown","preventDefault","stopPropagation","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","getMeaningfulActions","activeAction","popovers","textLength","prefixLength","currentStart","currentEnd","Math","min","max","uploadButtonRef","onFilesDropped","_textareaRef$current0","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","desiredSelectionRef","onSubmit","onChange","onKeyDown","onPaste","paddingTop","UploadedFiles","onRemove","uid","abortController","abort","onAdd","_uploadButtonRef$curr","requestUpload","UploadButton","_textareaRef$current1","onClick","lib","icon","overlay","createPortal","activeKeys","getActiveActionKeys","footerTips","count","GlobalDragOverlay","getGroupedCommandActions","every","groupKey","groups","Map","group","get","set","values","flatMap","getCommandActions","_ChatBox2","_set_messageSubmit","_set_chatSubmit","_set_commandSelect","styleTexts","styleText","UploadedFilesStyleText","delegatesFocus","_HomeContainer","HomeContainer","_init_sticky","_init_extra_sticky","sticky","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","size","lineColor","showArea","xField","yField","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","SIDEBAR_ICON","WrappedElevoLogo","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleActionClick","_handleProjectActionClick","_handleAddProject","ElevoSidebar","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_newChatLinkWhenCollapsed","_init_extra_newChatLinkWhenCollapsed","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_links","_init_extra_links","_init_canAddProject","_init_extra_canAddProject","_init_myLinks","_init_extra_myLinks","_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","userInstanceId","behavior","logoUrl","newChatUrl","newChatLinkWhenCollapsed","historyUrlTemplate","historyActions","projectUrlTemplate","projectActions","links","canAddProject","myLinks","pullHistory","delay","pull","open","close","removeProject","projectId","addProject","project","_classPrivateFieldGet7","_classPrivateFieldGet8","moveConversation","_classPrivateFieldGet9","_classPrivateFieldGet0","onLogout","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","NavLink","activeIncludes","_ref3","active","title","ChatHistory","onHistoryClick","WrappedDropdownActions","themeVariant","async","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_actionClick","_set_projectActionClick","_set_addProject","useHasAssignedNodes","slotRef","hasAssignedNodes","setHasAssignedNodes","slotElement","listener","assignedNodes","addEventListener","removeEventListener","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_tooltipHoist","_init_extra_tooltipHoist","_init_variant","_init_extra_variant","_init_reduceIconSize","_init_extra_reduceIconSize","tooltip","tooltipHoist","reduceIconSize","IconButtonComponent","hasSlotted","btn","hoist","_IconButton2","ALL","EXPLORE_EXCELLENT_CASES","WrappedShowCase","WrappedTabList","onTabClick","_ShowCases","ShowCases","_init_list","_init_extra_list","_init_limit","_init_extra_limit","list","limit","ShowCasesComponent","Set","item","scenario","activeGroup","setActiveGroup","filteredList","filtered","tabs","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","servers","WrappedStickyContainer","_McpTools","McpTools","_init_stickyTop","_init_extra_stickyTop","stickyTop","McpToolsComponent","groupMap","platformMap","forEach","groupName","server","replaceAll","platform","entries","find","_name","platformName","orderedNames","sort","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","tabsNode","_ref6","items","_item$icon","fallback","description","_McpTools2","ForwardedChatStreamComponent","ChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","_onSplitChange","ChatStream","_init_splitChange","_init_extra_splitChange","splitted","_get_splitChange","onSwitchToCanvas","onSplitChange","_ChatStream2","_set_splitChange","AI_EMPLOYEES","UNTITLED","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","_init_urlTemplate","_init_extra_urlTemplate","industries","urlTemplate","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","role","clickable","parseTemplate","avatar","src","_AIEmployees2","AGENTS","_AIAgents","AIAgents","_init_withContainer","_init_extra_withContainer","withContainer","AIAgentsComponent","node","_item$tags","tags","tag","tagIndex","_AIAgents2","_PageContainer","PageContainer","_init_pageTitle","_init_extra_pageTitle","_init_breadcrumbs","_init_extra_breadcrumbs","pageTitle","breadcrumbs","PageContainerComponent","getRuntime","applyPageTitle","header","_PageContainer2","_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","_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","setOpen","q","setQ","setOptions","activeOption","opt","filteredOptions","ops","handleBeforeVisibleChange","handleSearchChange","debounce","evt","placement","trigger","arrow","distance","slot","maxWidth","undefined","_DropdownSelect2","_set_changeEvent","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedPageTitle","WrappedMainView","WrappedNarrowView","_PreviewContainer","_rootId","PreviewContainer","_init_source","_init_extra_source","_init_url","_init_extra_url","uniqueId","source","Suspense","spinning","styles","PreviewContainerComponent","rootId","parsedResultPromise","worker","getRemoteTsxParserWorker","parseView","parse","catch","error","console","parsedResult","use","convertedResultPromise","convertView","expanded","convertedResult","viewTitle","_parsedResult$entry","entry","defaultExport","RenderComponent","rootRef","container","portal","unstable_createRoot","supportsUseChildren","unmount","_rootRef$current","brick","context","functions","templates","main","_PreviewContainer2","WrapperIcon","WrapperButton","_ActionButtons","_ActionButtons_brand","ActionButtons","_init_items","_init_extra_items","_init_activeKey","_init_extra_activeKey","_init_change","_init_extra_change","activeKey","_get_change","ActionButtonsComponent","propActiveKey","setActiveKey","initializedRef","_items$find","hidden","filteredItems","_ActionButtons2","_set_change","UN_START_STATUS","RUNNING_STATUS","COMPLETED_STATUS","_supports","WrappedButton","iconMap","ready","working","completed","iconActions","category","GoalCardItem","goalItem","idWidth","cardStyle","onStatusChange","onTitleChange","onNewChat","onAppendChild","onRevokeAppendChild","isActive","state","serialNumber","conversations","owner","pending","compositionRef","handleCompositionStart","handleCompositionEnd","editing","setEditing","handleFocus","handleBlur","trim","blur","titleRef","_titleRef$current","paddingLeft","level","onFocus","onBlur","onCompositionStart","onCompositionEnd","contentEditable","editable","div","supportsContentEditablePlaintextOnly","suppressContentEditableWarning","instanceId","GoalCardListComponent","LegacyGoalCardListComponent","_GoalCardList","_GoalCardList_brand","_handleItemClick","_handleItemStatusChange","_handleTitleChange","_handleNewChat","GoalCardList","_init_goalList","_init_extra_goalList","_init_cardStyle","_init_extra_cardStyle","_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","appendChildDone","pendingId","newItem","onItemClick","_goalList","setGoalList","updateGoalItem","field","callback","updatedItem","prevList","goal","_goalList$reduce","reduce","handleTitleChange","newTitle","handleStatusChange","newStatus","newChild","pendingParentId","_prevList$findIndex","findIndex","offsetIndex","handleAppendChild","_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","actionsVisible","setActionsVisible","global","goalInstanceId","g","username","humanizeTime","startTime","HumanizeTimeFormat","full","relative","_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","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","chatUrlTemplate","ActivityTimelineComponent","activity","_activity$metadata","_activity$metadata2","user_id","user_name","action_type","metadata","conversation_title","after","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","contentBoxSize","blockSize","contentRect","observe","disconnect","handleContainerClick","composedPath","HTMLTextAreaElement","HTMLButtonElement","maxRows","borderSize","dragDisabled","_ChatInput2","_set_terminate","_ElevoLogo","ElevoLogo","alt","Logo","_ElevoLogo2","WATCH_REPLAY","bgClasses","_ShowCase","ShowCase","_init_caseTitle","_init_extra_caseTitle","_init_summary","_init_extra_summary","ShowCaseComponent","bgClass","hash","i","charCodeAt","abs","_ShowCase2","tool","params","http","post","stepId","_BlankState","BlankState","_init_illustration","_init_extra_illustration","_init_description","_init_extra_description","illustration","BlankStateComponent","getIllustrationSrc","imageGoals","imageSpaces","imageServiceflows","imageActivities","_BlankState2","_StickyContainer","StickyContainer","StickyContainerComponent","_StickyContainer2","_ElevoCard","ElevoCard","_init_cardTitle","_init_extra_cardTitle","_init_avatar","_init_extra_avatar","_init_avatarType","_init_extra_avatarType","cardTitle","avatarType","ElevoCardComponent","footerRef","hasFooter","actionsRef","hasActions","IconAvatar","color","iconProps","borderColor","_ElevoCard2","dpr","devicePixelRatio","TAB_HEIGHT","BORDER_RADIUS","slopeAngle","PI","deltaY","sin","deltaX","cos","slopeWidth","tan","offsetX","_FlowTabs","_FlowTabs_brand","FlowTabs","FlowTabsComponent","bgRef","tabsRef","canvas","nav","ctx","getContext","rootSize","requestId","getContentBoxSize","tabElements","Array","from","querySelectorAll","activeTabElement","classList","contains","tabWidth","isFirstTab","tabOffset","tabsOffset","activeTabOffset","cancelAnimationFrame","requestAnimationFrame","scale","clearRect","fillStyle","borderGradient","createLinearGradient","addColorStop","strokeStyle","actualWidth","actualHeight","translate","beginPath","moveTo","arcTo","upStartX","lineTo","arc","downStartX","closePath","fill","stroke","drawBg","boxSizeType","_FlowTabs2","ADD_STAGE","PLEASE_ENTER_NAME","UNASSIGNED","DELETE_STAGE","DELETE_STAGE_TIPS","DELETE","ADD_ACTIVITY","STAGE_NAME_EXISTS","ACTIVITY_NAME_EXISTS","showDialog","unwrapProvider","StageFlowComponent","LegacyStageFlowComponent","_StageFlow","_StageFlow_brand","_handleAddActivity","_handleEditActivity","StageFlow","_init_spec","_init_extra_spec","_init_readOnly","_init_extra_readOnly","spec","_init_addActivity","_init_extra_addActivity","stage","_get_addActivity","_init_editActivity","_init_extra_editActivity","_get_editActivity","readOnly","addActivity","editActivity","activityIndex","deleteActivity","onAddActivity","onEditActivity","stages","setStages","addingStage","setAddingStage","initialRef","getAIEmployeeName","_updatedStage$service","stageIndex","s","updatedStage","prevActivities","serviceFlowActivities","updatedActivities","newStages","_updatedStage$service2","_updatedStage$service3","splice","StageNavItem","otherStageNames","onNameChange","newName","updatedStages","onDelete","StageNameInput","onDone","stageName","_stage$serviceFlowAct","popoverRef","sync","_StageFlow2","_set_addActivity","_set_editActivity","props","xmlns","viewBox","fillRule","d","strokeLinecap","_RunningFlow","_RunningFlow_brand","_handleActiveChange","RunningFlow","_init_activeActivityId","_init_extra_activeActivityId","_init_activeChange","_init_extra_activeChange","activityId","_classPrivateGetter2","_get_activeChange","activeActivityId","RunningFlowComponent","onActiveChange","activeId","setActiveId","StageIcon","getActivityStateClassName","taskId","getFlowOrActivityIcon","endTime","Duration","setEnd","countTime","setEndTime","Date","now","interval","setInterval","clearInterval","duration","ceilDuration","ceil","minutes","floor","seconds","String","padStart","formatDuration","_RunningFlow2","_set_activeChange","MESSAGE_LIST","NO_NEW_MESSAGE","MARK_ALL_READ","ENTER_MESSAGE_CENTER","WrapperCounterBadge","WrapperIconButton","_NoticeDropdown","_NoticeDropdown_brand","_handleNoticeClick","_handleMarkAllRead","NoticeDropdown","_init_dataSource","_init_extra_dataSource","_init_popoverPlacement","_init_extra_popoverPlacement","_init_emptyText","_init_extra_emptyText","_init_notifyCenterUrl","_init_extra_notifyCenterUrl","_init_urlTarget","_init_extra_urlTarget","_init_hideNotifyCenterButton","_init_extra_hideNotifyCenterButton","_init_noticeClickEvent","_init_extra_noticeClickEvent","_init_markAllReadEvent","_init_extra_markAllReadEvent","_get_noticeClickEvent","_get_markAllReadEvent","dataSource","popoverPlacement","emptyText","notifyCenterUrl","urlTarget","hideNotifyCenterButton","NoticeDropdownComponent","onNoticeClick","onMarkAllRead","_dataSource$length","handleClose","handleNoticeItemClick","handleMarkAllReadClick","handleClickOutside","_event$composedPath","some","HTMLElement","showZero","dot","offset","imgSrc","getNotifyIcon","keepSvgOriginalColor","href","projectNotifySvg","accountNotifySvg","systemNotifySvg","spaceNotifySvg","_NoticeDropdown2","_set_noticeClickEvent","_set_markAllReadEvent","MARK_READ","NO_MESSAGE","WrappedCheckbox","onValuesChange","_NoticeList","_NoticeList_brand","_handleMarkItemsRead","NoticeList","_init_selectedIds","_init_extra_selectedIds","_init_markItemsReadEvent","_init_extra_markItemsReadEvent","_get_markItemsReadEvent","selectedIds","NoticeListComponent","onMarkItemsRead","_selectedIds","setSelectedIds","currentAllIds","isUnread","isAllSelected","handleSelectAll","checked","newSelectedIds","handleSelectItem","selectedId","_e$detail","NoticeListItem","selected","onSelectItem","checkboxRef","_e$detail2","_NoticeList2","_set_markItemsReadEvent","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___"],"sourceRoot":""}