@next-bricks/ai-portal 0.65.8 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +53 -39
- package/dist/chunks/1750.ba9f8f80.js +2 -0
- package/dist/chunks/1750.ba9f8f80.js.map +1 -0
- package/dist/chunks/chat-box.060b8727.js +3 -0
- package/dist/chunks/chat-box.060b8727.js.map +1 -0
- package/dist/chunks/{main.aced41aa.js → main.659aac54.js} +2 -2
- package/dist/chunks/{main.aced41aa.js.map → main.659aac54.js.map} +1 -1
- package/dist/chunks/set-chat-mentioned-employee.69199eec.js +2 -0
- package/dist/chunks/set-chat-mentioned-employee.69199eec.js.map +1 -0
- package/dist/chunks/space-logo.994f7a25.js +2 -0
- package/dist/chunks/space-logo.994f7a25.js.map +1 -0
- package/dist/chunks/space-workbench.964b8644.js +2 -0
- package/dist/chunks/space-workbench.964b8644.js.map +1 -0
- package/dist/examples.json +17 -14
- package/dist/images/2f7ddbac.svg +6 -0
- package/dist/{index.0efd927c.js → index.bdb0052a.js} +2 -2
- package/dist/index.bdb0052a.js.map +1 -0
- package/dist/manifest.json +379 -307
- package/dist/types.json +515 -218
- package/dist-types/bootstrap.d.ts +3 -0
- package/dist-types/data-providers/set-chat-mentioned-employee.d.ts +7 -0
- package/dist-types/data-providers/set-chat-mentioned-employee.spec.d.ts +1 -0
- package/dist-types/space-workbench/components/SpaceGuide/SpaceGuide.d.ts +13 -0
- package/dist-types/space-workbench/components/SpaceGuide/SpaceGuide.spec.d.ts +1 -0
- package/dist-types/space-workbench/components/SpaceNav/SpaceNav.d.ts +22 -0
- package/dist-types/space-workbench/components/SpaceNav/SpaceNav.spec.d.ts +1 -0
- package/dist-types/space-workbench/i18n.d.ts +19 -0
- package/dist-types/space-workbench/index.d.ts +20 -0
- package/dist-types/space-workbench/index.spec.d.ts +1 -0
- package/dist-types/space-workbench/interfaces.d.ts +5 -0
- package/dist-types/space-workbench/space-logo/index.d.ts +15 -0
- package/dist-types/space-workbench/space-logo/index.spec.d.ts +1 -0
- package/docs/space-workbench.md +78 -0
- package/package.json +2 -2
- package/dist/chunks/2742.64fa013f.js +0 -2
- package/dist/chunks/2742.64fa013f.js.map +0 -1
- package/dist/chunks/chat-box.3ae83b4f.js +0 -3
- package/dist/chunks/chat-box.3ae83b4f.js.map +0 -1
- package/dist/index.0efd927c.js.map +0 -1
- /package/dist/chunks/{chat-box.3ae83b4f.js.LICENSE.txt → chat-box.060b8727.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/1750.ba9f8f80.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/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/data-providers/set-chat-command.ts","webpack:///./src/data-providers/set-chat-mentioned-employee.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/chat-panel/styles.module.css?bf50","webpack:///./src/chat-panel/index.tsx","webpack:///./src/space-workbench/space-logo/index.tsx","webpack:///./src/space-workbench/i18n.ts","webpack:///./src/space-workbench/components/SpaceNav/SpaceNav.tsx","webpack:///./src/space-workbench/index.tsx","webpack:///./src/elevo-card/styles.shadow.css","webpack:///./src/blank-state/styles.shadow.css","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/space-workbench/space-logo/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/space-workbench/components/SpaceNav/SpaceNav.shadow.css","webpack:///./src/space-workbench/styles.shadow.css","webpack:///./src/dropdown-select/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/show-case/styles.shadow.css","webpack:///./src/goal-card-list/CardItem/CardItem.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/page-container/styles.shadow.css","webpack:///./src/chat-panel/styles.module.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/space-workbench/components/SpaceGuide/SpaceGuide.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","// 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\";\nimport type {\n AIEmployee,\n Command,\n} from \"../shared/ChatCompletions/useChatCompletions.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 aiEmployees?: AIEmployee[];\n commands?: Command[];\n uploadOptions?: UploadOptions;\n hideMermaid?: boolean;\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 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 @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 aiEmployees={this.aiEmployees}\n commands={this.commands}\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 { 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 { createProviderClass } from \"@next-core/utils/general\";\n\nlet chatEmployee: ChatMentionedEmployee | null = null;\n\ninterface ChatMentionedEmployee {\n name: string;\n employeeId: string;\n}\n\nexport function setChatMentionedEmployee(\n chatMentionedEmployee: ChatMentionedEmployee | null\n): void {\n chatEmployee = chatMentionedEmployee;\n}\n\nexport function getChatMentionedEmployee(): ChatMentionedEmployee | null {\n return chatEmployee;\n}\n\ncustomElements.define(\n \"ai-portal.set-chat-mentioned-employee\",\n createProviderClass(setChatMentionedEmployee)\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 useImperativeHandle,\n createRef,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { TextareaAutoResize } from \"@next-shared/form\";\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 getChatCommand,\n setChatCommand,\n} from \"../data-providers/set-chat-command.js\";\nimport {\n getChatMentionedEmployee,\n setChatMentionedEmployee,\n} from \"../data-providers/set-chat-mentioned-employee.js\";\nimport type { ChatPayload, UploadOptions } 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\";\nimport { getInitialContent } from \"../shared/ReadableCommand/ReadableCommand.js\";\nimport {\n useChatCompletions,\n type ActionWithSubCommands,\n type Command,\n} from \"../shared/ChatCompletions/useChatCompletions.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\n/**\n * 大型聊天输入框,用于首页\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 @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 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 ref?: React.Ref<ChatBoxRef>;\n}\n\nfunction LegacyChatBoxComponent(\n {\n root,\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\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 const {\n textareaRef,\n valueRef,\n value,\n setValue,\n selectionRef,\n\n mentioned,\n mentionedText,\n mentionPopover,\n mentionOverlay,\n mentionActiveKeys,\n setInitialMention,\n handleMention,\n\n command,\n commandText,\n commandPrefix,\n commandPopover,\n commandOverlay,\n commandActiveKeys,\n setInitialCommand,\n handleSelectCommand,\n\n handleChange,\n handleKeyDown,\n } = useChatCompletions({\n aiEmployees,\n commands,\n root,\n hasFiles,\n });\n\n useEffect(() => {\n const command = getChatCommand();\n if (command) {\n setChatCommand(null);\n }\n setInitialCommand(command);\n }, [setInitialCommand]);\n\n useEffect(() => {\n const employee = getChatMentionedEmployee();\n if (employee) {\n setChatMentionedEmployee(null);\n setInitialMention(employee.employeeId);\n }\n }, []);\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 if (store?.cmd) {\n setInitialCommand({\n command: getInitialContent(store.cmd).slice(1),\n payload: store.cmd,\n });\n } else if (store?.mentionedAiEmployeeId) {\n setInitialMention(store.mentionedAiEmployeeId);\n }\n }\n }, [setInitialCommand, setInitialMention, setValue, valueRef]);\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 handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit, valueRef]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles, textareaRef]\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\" />\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={mentionActiveKeys!}\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={commandActiveKeys!}\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","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 HomeContainerProps {\n sticky?: boolean;\n}\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement implements HomeContainerProps {\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 PersonalActionClickDetail,\n type Project,\n type ProjectActionClickDetail,\n} from \"./ChatHistory.js\";\nimport { NavLink } from \"./NavLink.js\";\nimport type { SidebarLink } from \"./interfaces.js\";\nimport { SpaceNav, type SpaceNavProps } from \"./SpaceNav.js\";\n\nexport type { SidebarLink, SpaceNavProps };\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 showProjects?: boolean;\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n personalActions?: ActionType[];\n links?: SidebarLink[];\n canAddProject?: boolean;\n myLinks?: SidebarLink[];\n scope?: \"default\" | \"space\";\n spaceNav?: SpaceNavProps;\n}\n\nexport type { ActionClickDetail, Project, ProjectActionClickDetail };\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({ type: Boolean })\n accessor showProjects: boolean | 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 personalActions: 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 /**\n * @default \"default\"\n */\n @property()\n accessor scope: \"default\" | \"space\" | undefined;\n\n @property({ attribute: false })\n accessor spaceNav: SpaceNavProps | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n /**\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 /**\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 @event({ type: \"add.serviceflow\" })\n accessor #addServiceflow!: EventEmitter<void>;\n\n #handleAddServiceflow = () => {\n this.#addServiceflow.emit();\n };\n\n /**\n * 点击个人操作按钮时触发\n */\n @event({ type: \"personal.action.click\" })\n accessor #personalActionClick!: EventEmitter<PersonalActionClickDetail>;\n\n #handlePersonalActionClick = (detail: PersonalActionClickDetail) => {\n this.#personalActionClick.emit(detail);\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 showProjects={this.showProjects}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n personalActions={this.personalActions}\n links={this.links}\n canAddProject={this.canAddProject}\n myLinks={this.myLinks}\n scope={this.scope}\n spaceNav={this.spaceNav}\n onLogout={this.#handleLogout}\n onActionClick={this.#handleActionClick}\n onProjectActionClick={this.#handleProjectActionClick}\n onAddProject={this.#handleAddProject}\n onAddServiceflow={this.#handleAddServiceflow}\n onPersonalActionClick={this.#handlePersonalActionClick}\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 onAddServiceflow: () => void;\n onPersonalActionClick: (detail: PersonalActionClickDetail) => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyUrlTemplate,\n historyActions,\n showProjects,\n projectUrlTemplate,\n projectActions,\n links,\n canAddProject,\n myLinks,\n scope,\n spaceNav,\n personalActions,\n onLogout,\n onActionClick,\n onProjectActionClick,\n onAddProject,\n onAddServiceflow,\n onPersonalActionClick,\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 <div className=\"main\">\n {scope === \"space\" ? (\n <SpaceNav onAddServiceflow={onAddServiceflow} {...spaceNav!} />\n ) : (\n <>\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 <>\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 className=\"divider\" />\n </>\n ) : null}\n <ChatHistory\n ref={historyRef}\n showProjects={showProjects}\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 </>\n )}\n </div>\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n themeVariant=\"elevo\"\n actions={personalActions || dropdownActions}\n onActionClick={async (e) => {\n if (personalActions) {\n onPersonalActionClick({ action: e.detail });\n } else 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, type HTMLAttributes } 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 & HTMLAttributes<GeneralIcon>;\n tooltip?: string;\n tooltipHoist?: boolean;\n active?: boolean;\n disabled?: boolean;\n variant?: IconButtonVariant;\n reduceIconSize?: boolean;\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 & HTMLAttributes<GeneralIcon>) | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor tooltipHoist: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor active: 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\";\nimport type {\n AIEmployee,\n Command,\n} from \"../shared/ChatCompletions/useChatCompletions.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 aiEmployees?: AIEmployee[];\n commands?: Command[];\n uploadOptions?: UploadOptions;\n hideMermaid?: boolean;\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 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 @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 aiEmployees={this.aiEmployees}\n commands={this.commands}\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 className={breadcrumbs?.length ? \"with-breadcrumbs\" : \"\"}>\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 <div className=\"toolbar\">\n <slot name=\"toolbar\" />\n </div>\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\nexport interface 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-tsx/parser\";\nimport { convertView, type ConvertResult } from \"@next-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\nexport interface 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 \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 COMMAND_TIPS = \"COMMAND_TIPS\",\n SEARCH_COMMANDS_TIPS = \"SEARCH_COMMANDS_TIPS\",\n}\n\nconst en: Locale = {\n [K.TERMINATE_THE_TASK]: \"Terminate the task\",\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.TERMINATE_THE_TASK]: \"终止任务\",\n [K.COMMAND_TIPS]: \"‘@’ 数字人 | ‘/’ 命令\",\n [K.SEARCH_COMMANDS_TIPS]: \"最多显示 {{count}} 条数据,输入关键字搜索\",\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, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { TextareaAutoResize } 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 type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n} from \"@next-bricks/basic/actions\";\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\";\nimport {\n MAX_SHOWN_COMMANDS,\n useChatCompletions,\n type ActionWithSubCommands,\n type AIEmployee,\n type Command,\n} from \"../shared/ChatCompletions/useChatCompletions.js\";\nimport { createPortal } from \"react-dom\";\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\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});\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n autoFade?: boolean;\n uploadOptions?: UploadOptions;\n aiEmployees?: AIEmployee[];\n commands?: Command[];\n suggestionsPlacement?: \"top\" | \"bottom\";\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\nconst ChatInputComponent = forwardRef(LegacyChatInputComponent);\n\n/**\n * 小型聊天输入框,用于对话等页面\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({ type: Boolean, render: false })\n accessor autoFade: boolean | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n /**\n * @default \"bottom\"\n */\n @property()\n accessor suggestionsPlacement: \"top\" | \"bottom\" | 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 #ref = createRef<ChatInputRef>();\n\n @method()\n setValue(value: string) {\n this.#ref.current?.setValue(value);\n }\n\n render() {\n return (\n <ChatInputComponent\n ref={this.#ref}\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 aiEmployees={this.aiEmployees}\n commands={this.commands}\n suggestionsPlacement={this.suggestionsPlacement}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onTerminate={this.#handleTerminate}\n root={this}\n />\n );\n }\n}\n\ninterface ChatInputRef {\n setValue: (value: string) => void;\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n root: HTMLElement;\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onTerminate: () => void;\n}\n\nfunction LegacyChatInputComponent(\n {\n root,\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n uploadOptions,\n aiEmployees,\n commands,\n suggestionsPlacement,\n onMessageSubmit,\n onChatSubmit,\n onTerminate,\n }: ChatInputComponentProps,\n ref: React.Ref<ChatInputRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n\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 const {\n textareaRef,\n valueRef,\n value,\n setValue,\n selectionRef,\n\n mentioned,\n mentionedText,\n mentionPopover,\n mentionOverlay,\n mentionActiveKeys,\n handleMention,\n\n command,\n commandText,\n commandPrefix,\n commandPopover,\n commandOverlay,\n commandActiveKeys,\n handleSelectCommand,\n\n handleChange,\n handleKeyDown,\n } = useChatCompletions({\n aiEmployees,\n commands,\n root,\n hasFiles,\n placement: suggestionsPlacement,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n setTimeout(() => {\n textareaRef.current?.focus();\n }, 100);\n },\n }),\n [setValue, textareaRef, valueRef]\n );\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, textareaRef]);\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 valueRef.current = \"\";\n setValue(\"\");\n resetFiles();\n },\n [\n sendDisabled,\n onMessageSubmit,\n onChatSubmit,\n fileInfos,\n resetFiles,\n valueRef,\n setValue,\n mentioned,\n mentionedText,\n command,\n commandText,\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 handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit, valueRef]);\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(\n (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 [textareaRef]\n );\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles, textareaRef]\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 desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\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 {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={mentionActiveKeys!}\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={commandActiveKeys!}\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 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-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 <slot />\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}\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 \"activity.click\": CustomEvent<string>;\n}\n\nexport interface RunningFlowMapEvents {\n onActivityClick: \"activity.click\";\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 @event({ type: \"activity.click\" })\n accessor #activityClick!: EventEmitter<string>;\n\n #handleActivityClick = (activityId: string) => {\n this.#activityClick?.emit(activityId);\n };\n\n render() {\n return (\n <RunningFlowComponent\n spec={this.spec}\n onActivityClick={this.#handleActivityClick}\n />\n );\n }\n}\n\ninterface RunningFlowComponentProps extends RunningFlowProps {\n onActivityClick: (activityId: string) => void;\n}\n\nfunction RunningFlowComponent({\n spec: stages,\n onActivityClick,\n}: RunningFlowComponentProps) {\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 onClick={() => {\n if (activity.taskId) {\n onActivityClick(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\";\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 NoticeItem {\n id: string;\n type: string;\n isRead: boolean;\n title: string;\n description?: string;\n time: number;\n /** 单个消息详情链接,优先级高于 urlTemplate */\n url?: string;\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={item.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 target=\"_blank\"\n href={notifyCenterUrl}\n type=\"text\"\n className=\"footer-button\"\n >\n {t(K.ENTER_MESSAGE_CENTER)} >\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\";\n\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, NoticeItem } 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.isRead).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 disabled={currentAllIds?.length === 0}\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.isRead,\n })}\n url={item.url ?? parseTemplate(urlTemplate, item)}\n target={urlTarget}\n onClick={() => onNoticeClick(item)}\n >\n <div className=\"left\">\n <WrappedCheckbox\n ref={checkboxRef}\n disabled={item.isRead}\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","\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, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n Modal,\n ModalProps,\n ModalEvents,\n ModalMapEvents,\n} from \"@next-bricks/containers/modal\";\nimport { http } from \"@next-core/http\";\nimport type { UseBrickConf } from \"@next-core/types\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport styles from \"./styles.module.css\";\nimport type { ChatInput } from \"../chat-input\";\nimport type {\n ActiveImages,\n ChatPayload,\n CommandPayload,\n ExtraChatPayload,\n FileInfo,\n RequestStore,\n UploadOptions,\n} from \"../shared/interfaces\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport { useConversationDetail } from \"../cruise-canvas/useConversationDetail\";\nimport { useConversationStream } from \"../chat-stream/useConversationStream\";\nimport { preloadHighlighter } from \"@next-shared/markdown\";\nimport { useAutoScroll } from \"../chat-stream/useAutoScroll\";\nimport { UserMessage } from \"../chat-stream/UserMessage/UserMessage\";\nimport { AssistantMessage } from \"../chat-stream/AssistantMessage/AssistantMessage\";\nimport scrollStyles from \"../chat-stream/ScrollDownButton.module.css\";\nimport floatingStyles from \"../shared/FloatingButton.module.css\";\nimport backgroundImage from \"../home-container/images/background.png\";\nimport { DONE_STATES, NON_WORKING_STATES } from \"../shared/constants\";\nimport { WrappedChatInput, WrappedIcon } from \"../shared/bricks\";\nimport { FilePreview } from \"../shared/FilePreview/FilePreview.js\";\nimport { ImagesPreview } from \"../shared/FilePreview/ImagesPreview.js\";\nimport { TaskContext, type TaskContextValue } from \"../shared/TaskContext\";\nimport { StreamContext } from \"../chat-stream/StreamContext\";\n\nconst WrappedModal = wrapBrick<\n Modal,\n ModalProps & {\n themeVariant?: \"default\" | \"elevo\";\n height?: string | number;\n noFooter?: boolean;\n headerBordered?: boolean;\n background?: string;\n fullscreenButton?: boolean;\n },\n ModalEvents,\n ModalMapEvents\n>(\"eo-modal\", {\n onClose: \"close\",\n onConfirm: \"confirm\",\n onCancel: \"cancel\",\n onOpen: \"open\",\n});\n\nconst { defineElement, property, method } = createDecorators();\n\nexport interface ChatPanelProps {\n panelTitle?: string;\n aiEmployeeId?: string;\n cmd?: CommandPayload;\n width?: string | number;\n height?: string | number;\n placeholder?: string;\n uploadOptions?: UploadOptions;\n help?: { useBrick: UseBrickConf };\n maskClosable?: boolean;\n}\n\nconst ChatPanelComponent = forwardRef(LegacyChatPanelComponent);\n\n/**\n * 弹出式对话面板。\n */\nexport\n@defineElement(\"ai-portal.chat-panel\", {\n shadowOptions: false,\n})\nclass ChatPanel extends ReactNextElement implements ChatPanelProps {\n @property()\n accessor panelTitle: string | undefined;\n\n @property()\n accessor aiEmployeeId: string | undefined;\n\n @property({ attribute: false })\n accessor cmd: CommandPayload | undefined;\n\n @property({ attribute: false }) accessor width: string | number | undefined;\n\n @property({ attribute: false }) accessor height: string | number | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * Show help messages when no conversation exists.\n */\n @property({ attribute: false })\n accessor help: { useBrick: UseBrickConf } | undefined;\n\n /**\n * Whether to close the panel when clicking the mask.\n *\n * @default false\n */\n @property({ type: Boolean })\n accessor maskClosable: boolean | undefined;\n\n #ref = createRef<ChatPanelRef>();\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 setInputValue(content: string) {\n this.#ref.current?.setInputValue(content);\n }\n\n @method()\n send(payload: ChatPayload) {\n this.#ref.current?.send(payload);\n }\n\n @method()\n showFile(file: FileInfo) {\n this.#ref.current?.showFile(file);\n }\n\n render() {\n return (\n <ChatPanelComponent\n ref={this.#ref}\n panelTitle={this.panelTitle}\n aiEmployeeId={this.aiEmployeeId}\n cmd={this.cmd}\n width={this.width}\n height={this.height}\n placeholder={this.placeholder}\n uploadOptions={this.uploadOptions}\n help={this.help}\n maskClosable={this.maskClosable}\n />\n );\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface ChatPanelComponentProps extends ChatPanelProps {\n // Define react event handlers here.\n}\n\ninterface ChatPanelRef {\n open: () => void;\n close: () => void;\n setInputValue: (content: string) => void;\n send: (payload: ChatPayload) => void;\n showFile: (file: FileInfo) => void;\n}\n\nfunction LegacyChatPanelComponent(\n {\n panelTitle,\n aiEmployeeId,\n cmd,\n width,\n height,\n placeholder,\n uploadOptions,\n help,\n maskClosable,\n }: ChatPanelComponentProps,\n ref: React.Ref<ChatPanelRef>\n) {\n const modalRef = useRef<Modal>(null);\n const inputRef = useRef<ChatInput>(null);\n\n const [submitDisabled, setSubmitDisabled] = useState(false);\n\n const [conversationId, setConversationId] = useState<string | null>(null);\n const [initialRequest, setInitialRequest] = useState<RequestStore | null>(\n null\n );\n\n const { conversation, tasks, errors, humanInputRef } = useConversationDetail(\n conversationId,\n initialRequest\n );\n const conversationAvailable = !!conversation;\n const conversationState = conversation?.state;\n const conversationDone = DONE_STATES.includes(conversationState!);\n const conversationFinished = conversation?.finished;\n const earlyFinished =\n conversation?.finished &&\n conversation.mode !== \"resume\" &&\n !NON_WORKING_STATES.includes(conversationState!);\n\n const canChat =\n !conversationId ||\n conversationDone ||\n conversationState === \"input-required\";\n\n const { messages, jobMap } = useConversationStream(\n conversationAvailable,\n conversationState,\n tasks,\n errors,\n { showHumanActions: true, skipActivitySubTasks: true }\n );\n\n const humanInput = useCallback(\n (input: string | null, action?: string, extra?: ExtraChatPayload) => {\n humanInputRef.current?.(input, action, extra);\n },\n [humanInputRef]\n );\n\n const [depsReady, setDepsReady] = useState(false);\n useEffect(() => {\n let ignore = false;\n Promise.race([\n preloadHighlighter(\"light-plus\"),\n // Wait at most 5s\n new Promise((resolve) => setTimeout(resolve, 5000)),\n ]).finally(() => {\n if (!ignore) {\n setDepsReady(true);\n }\n });\n return () => {\n ignore = true;\n };\n }, []);\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const scrollContentRef = useRef<HTMLDivElement>(null);\n\n const { scrollable, scrollToBottom, toggleAutoScroll } = useAutoScroll(\n conversationAvailable && depsReady,\n scrollContainerRef,\n scrollContentRef\n );\n\n const handleChatSubmit = useCallback(\n async (payload: ChatPayload) => {\n if (conversationId) {\n const { content, ...extra } = payload;\n // For follow-up messages, do not pass aiEmployeeId and cmd again,\n // unless passed explicitly.\n humanInput(content, undefined, extra);\n return;\n }\n setSubmitDisabled(true);\n try {\n const res = await http.post<{\n data: { conversationId: string };\n }>(\n \"api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations\",\n {}\n );\n const conversationId = res.data.conversationId;\n setConversationId(conversationId);\n setInitialRequest({\n ...payload,\n ...(aiEmployeeId ? { aiEmployeeId } : null),\n ...(cmd ? { cmd } : null),\n conversationId: conversationId,\n });\n } catch (e) {\n handleHttpError(e);\n } finally {\n setSubmitDisabled(false);\n }\n },\n [aiEmployeeId, cmd, conversationId, humanInput]\n );\n\n const [activeFile, setActiveFile] = useState<FileInfo | null>(null);\n const [activeImages, setActiveImages] = useState<ActiveImages | null>(null);\n\n const taskContextValue = useMemo(\n () =>\n ({\n conversationState,\n finished: conversationFinished,\n earlyFinished,\n tasks,\n jobMap,\n errors,\n setActiveFile,\n setActiveImages,\n humanInput,\n }) as TaskContextValue,\n [\n conversationState,\n humanInput,\n jobMap,\n tasks,\n errors,\n conversationFinished,\n earlyFinished,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n open: () => {\n modalRef.current?.open();\n },\n close: () => {\n modalRef.current?.close();\n },\n setInputValue: (content: string) => {\n inputRef.current?.setValue(content);\n },\n send: (payload: ChatPayload) => {\n handleChatSubmit(payload);\n },\n showFile: (file: FileInfo) => {\n setActiveFile(file);\n },\n }),\n [handleChatSubmit]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastDetail: null,\n planMap: null,\n toggleAutoScroll,\n setUserClosedAside: () => {},\n }),\n [toggleAutoScroll]\n );\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <WrappedModal\n modalTitle={panelTitle}\n width={width}\n height={height}\n themeVariant=\"elevo\"\n maskClosable={maskClosable}\n noFooter\n headerBordered\n fullscreenButton\n background={`fixed url(${backgroundImage}) center center / cover no-repeat`}\n onOpen={() => {\n setTimeout(() => {\n inputRef.current?.focus();\n }, 100);\n }}\n ref={modalRef}\n >\n <div className={styles.panel}>\n {!conversationId ? (\n <div className={styles.main}>\n <div className={styles.chat}>\n <div className={styles.narrow}>\n {help ? (\n <ReactUseMultipleBricks useBrick={help.useBrick} />\n ) : null}\n </div>\n </div>\n </div>\n ) : conversationAvailable && depsReady ? (\n <div className={styles.main}>\n <div className={styles.chat} ref={scrollContainerRef}>\n <div className={styles.narrow}>\n <div className={styles.messages} ref={scrollContentRef}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage\n content={msg.content}\n files={msg.files}\n />\n ) : (\n <AssistantMessage\n chunks={msg.chunks}\n scopeState={conversation.state}\n isLatest={\n index === list.length - 1 && !earlyFinished\n }\n finished={conversation.finished}\n />\n )}\n </div>\n ))}\n {earlyFinished && (\n <div className={styles.message}>\n <AssistantMessage earlyFinished />\n </div>\n )}\n </div>\n </div>\n </div>\n <button\n className={`${scrollStyles[\"scroll-down\"]} ${floatingStyles[\"floating-button\"]}`}\n style={{ bottom: \"30px\" }}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </button>\n </div>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n <div className={styles.narrow}>\n <WrappedChatInput\n ref={inputRef}\n placeholder={placeholder}\n suggestionsPlacement=\"top\"\n submitDisabled={submitDisabled || !canChat}\n supportsTerminate\n uploadOptions={uploadOptions}\n onChatSubmit={(e) => handleChatSubmit(e.detail)}\n />\n </div>\n </div>\n </WrappedModal>\n {activeFile && <FilePreview file={activeFile} fromModal />}\n {activeImages && <ImagesPreview images={activeImages} fromModal />}\n </StreamContext.Provider>\n </TaskContext.Provider>\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 spaceLogoSvg from \"../images/space-logo.svg?url\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface SpaceLogoProps {\n size?: number;\n}\n\n/**\n * 构件 `ai-portal.space-logo`\n *\n * 协作空间的 Logo 展示组件\n */\nexport\n@defineElement(\"ai-portal.space-logo\", {\n styleTexts: [styleText],\n})\nclass SpaceLogo extends ReactNextElement implements SpaceLogoProps {\n @property({ type: Number })\n accessor size: number | undefined;\n\n render() {\n return <SpaceLogoComponent size={this.size} />;\n }\n}\n\nfunction SpaceLogoComponent({ size = 48 }: SpaceLogoProps) {\n const iconSize = Math.round(size * 0.875); // 图标为容器的 87.5%\n const borderRadius = Math.round(size * 0.25); // 圆角为容器的 25%\n\n return (\n <div\n className=\"space-logo\"\n style={{\n width: `${size}px`,\n height: `${size}px`,\n borderRadius: `${borderRadius}px`,\n }}\n >\n <img\n src={spaceLogoSvg}\n alt=\"Space Logo\"\n style={{\n width: `${iconSize}px`,\n height: `${iconSize}px`,\n }}\n />\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n DESCRIPTION = \"DESCRIPTION\",\n SPACE_GUIDE_SECTION_TITLE = \"SPACE_GUIDE_SECTION_TITLE\",\n SPACE_GUIDE_CARD_1_TITLE = \"SPACE_GUIDE_CARD_1_TITLE\",\n SPACE_GUIDE_CARD_2_TITLE = \"SPACE_GUIDE_CARD_2_TITLE\",\n SPACE_GUIDE_CARD_3_TITLE = \"SPACE_GUIDE_CARD_3_TITLE\",\n}\n\nconst en: Locale = {\n DESCRIPTION: \"Description\",\n SPACE_GUIDE_SECTION_TITLE: \"I can help you with:\",\n SPACE_GUIDE_CARD_1_TITLE: \"Manage Business Cases\",\n SPACE_GUIDE_CARD_2_TITLE: \"Initiate Business Flow\",\n SPACE_GUIDE_CARD_3_TITLE: \"Manage Space Knowledge\",\n};\n\nconst zh: Locale = {\n DESCRIPTION: \"描述\",\n SPACE_GUIDE_SECTION_TITLE: \"我可以协助您完成:\",\n SPACE_GUIDE_CARD_1_TITLE: \"管理业务案例\",\n SPACE_GUIDE_CARD_2_TITLE: \"发起业务流\",\n SPACE_GUIDE_CARD_3_TITLE: \"管理空间知识\",\n};\n\nexport const NS = \"bricks/ai-portal/space-workbench\";\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 { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport {\n NoticeDropdown,\n NoticeDropdownProps,\n NoticeItem,\n} from \"../../../notice-dropdown/index.jsx\";\nimport type { SpaceLogo, SpaceLogoProps } from \"../../space-logo/index.jsx\";\nimport { K, t } from \"../../i18n.js\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport interface NoticeDropdownEvents {\n \"notice.click\": CustomEvent<NoticeItem>;\n \"mark.all.read\": CustomEvent<void>;\n}\n\nexport interface NoticeDropdownMapping {\n onNoticeClick: \"notice.click\";\n onMarkAllRead: \"mark.all.read\";\n}\n\nconst WrappedNoticeDropdown = wrapBrick<\n NoticeDropdown,\n NoticeDropdownProps,\n NoticeDropdownEvents,\n NoticeDropdownMapping\n>(\"ai-portal.notice-dropdown\", {\n onNoticeClick: \"notice.click\",\n onMarkAllRead: \"mark.all.read\",\n});\nconst WrappedSpaceLogo = wrapBrick<SpaceLogo, SpaceLogoProps>(\n \"ai-portal.space-logo\"\n);\n\nexport interface SpaceNavProps {\n spaceName: string;\n notices?: NoticeItem[];\n onBack: () => void;\n onMembersClick: () => void;\n notifyCenterUrl: string;\n onMarkAllRead: () => void;\n onNoticeClick: (notice: NoticeItem) => void;\n description?: string;\n onSpaceEdit?: () => void;\n}\n\nexport function SpaceNav(props: SpaceNavProps) {\n const {\n spaceName,\n notices = [],\n notifyCenterUrl,\n onBack,\n onMembersClick,\n onMarkAllRead,\n onNoticeClick,\n description,\n onSpaceEdit,\n } = props;\n\n const [showDescription, setShowDescription] = React.useState(false);\n\n const handleQuestionClick = () => {\n setShowDescription(!showDescription);\n };\n\n return (\n <>\n <header className=\"space-workbench-header\">\n <div className=\"header-left\">\n <button className=\"icon-button\" onClick={onBack}>\n <WrappedIcon lib=\"antd\" icon=\"arrow-left\" theme=\"outlined\" />\n </button>\n\n <WrappedSpaceLogo size={32} />\n\n <h1 className=\"space-title\">{spaceName}</h1>\n\n <div className=\"action-icons\">\n <button className=\"icon-button\">\n <WrappedIcon lib=\"antd\" icon=\"setting\" theme=\"outlined\" />\n </button>\n <button\n className={`icon-button ${showDescription ? \"active\" : \"\"}`}\n onClick={handleQuestionClick}\n >\n <WrappedIcon lib=\"antd\" icon=\"question-circle\" theme=\"outlined\" />\n </button>\n </div>\n </div>\n\n <div className=\"header-right\">\n <WrappedIcon\n className=\"icon-button\"\n lib=\"antd\"\n icon=\"usergroup-add\"\n onClick={onMembersClick}\n ></WrappedIcon>\n\n <div className=\"divider\" />\n\n <WrappedNoticeDropdown\n dataSource={notices}\n dropdownContentStyle={{ minWidth: \"300px\" }}\n hideNotifyCenterButton\n urlTarget=\"_blank\"\n notifyCenterUrl={notifyCenterUrl}\n onMarkAllRead={() => onMarkAllRead()}\n onNoticeClick={(e) => onNoticeClick(e.detail)}\n />\n </div>\n </header>\n\n {showDescription && description && (\n <div className=\"space-description\">\n <div className=\"description-header\">\n <p className=\"description-title\">{t(K.DESCRIPTION)}</p>\n <button className=\"description-edit-button\" onClick={onSpaceEdit}>\n <WrappedIcon lib=\"antd\" icon=\"edit\" theme=\"outlined\" />\n </button>\n </div>\n <p className=\"description-content\">{description}</p>\n </div>\n )}\n </>\n );\n}\n","// istanbul ignore file\nimport React from \"react\";\nimport { createDecorators, 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 SpaceNavStyle from \"./components/SpaceNav/SpaceNav.shadow.css\";\nimport SpaceGuideStyle from \"./components/SpaceGuide/SpaceGuide.shadow.css\";\nimport styleText from \"./styles.shadow.css\";\nimport type { NoticeItem } from \"../notice-dropdown/index.js\";\nimport { SpaceDetail } from \"./interfaces.js\";\nimport { SpaceNav } from \"./components/SpaceNav/SpaceNav\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface SpaceWorkbenchProps {\n notifyCenterUrl: string;\n spaceDetail: SpaceDetail;\n notices?: NoticeItem[];\n}\n\n/**\n * 构件 `ai-portal.space-workbench`\n */\nexport\n@defineElement(\"ai-portal.space-workbench\", {\n styleTexts: [SpaceNavStyle, SpaceGuideStyle, styleText],\n})\nclass SpaceWorkbench extends ReactNextElement implements SpaceWorkbenchProps {\n @property({ attribute: false })\n accessor notices: NoticeItem[] | undefined;\n\n @property({ attribute: false })\n accessor spaceDetail!: SpaceDetail;\n\n @property()\n accessor notifyCenterUrl!: string;\n\n @event({ type: \"go.back\" })\n accessor #_goBackEvent!: EventEmitter<void>;\n\n @event({ type: \"members.click\" })\n accessor #_membersClickEvent!: EventEmitter<void>;\n\n @event({ type: \"notice.click\" })\n accessor #_noticeClickEvent!: EventEmitter<NoticeItem>;\n\n @event({ type: \"mark.all.read\" })\n accessor #_markAllReadEvent!: EventEmitter<void>;\n\n @event({ type: \"space.edit\" })\n accessor #_spaceEditEvent!: EventEmitter<void>;\n\n render() {\n return (\n <SpaceWorkbenchComponent\n spaceDetail={this.spaceDetail}\n notices={this.notices}\n notifyCenterUrl={this.notifyCenterUrl}\n onBack={() => this.#_goBackEvent.emit()}\n onMembersClick={() => this.#_membersClickEvent.emit()}\n onNoticeClick={(notice) => this.#_noticeClickEvent.emit(notice)}\n onMarkAllRead={() => this.#_markAllReadEvent.emit()}\n onSpaceEdit={() => this.#_spaceEditEvent.emit()}\n />\n );\n }\n}\n\ninterface SpaceWorkbenchComponentProps extends SpaceWorkbenchProps {\n onBack: () => void;\n onMembersClick: () => void;\n onMarkAllRead: () => void;\n onNoticeClick: (notice: NoticeItem) => void;\n onSpaceEdit: () => void;\n}\n\nfunction SpaceWorkbenchComponent(props: SpaceWorkbenchComponentProps) {\n const {\n spaceDetail,\n notices = [],\n notifyCenterUrl,\n onBack,\n onMembersClick,\n onMarkAllRead,\n onNoticeClick,\n onSpaceEdit,\n } = props;\n\n return (\n <div className=\"space-workbench-container\">\n <SpaceNav\n spaceName={spaceDetail.name}\n description={spaceDetail.description}\n notifyCenterUrl={notifyCenterUrl}\n notices={notices}\n onBack={onBack}\n onMembersClick={onMembersClick}\n onMarkAllRead={onMarkAllRead}\n onNoticeClick={onNoticeClick}\n onSpaceEdit={onSpaceEdit}\n />\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.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:16px}:host([hidden]){display:none}p{color:rgba(0,0,0,0.45);margin:10px 0 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:inline-block}:host([hidden]){display:none}.space-logo{display:flex;align-items:center;justify-content:center;background:#2540ff;border-radius:16px;box-shadow:0px 10px 15px -3px rgba(37,64,255,0.2),0px 4px 6px -4px rgba(37,64,255,0.2)}.space-logo img{width:100%;height:100%;object-fit:contain}`, \"\"]);\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, `.space-workbench-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px}.header-left{display:flex;align-items:center;gap:12px;flex:1}.space-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#2540ff;box-shadow:0px 4px 4px 0px rgba(37,64,255,0.1);overflow:hidden;flex-shrink:0}.space-icon img{width:28px;height:28px;object-fit:cover}.space-title{margin:0;font-size:18px;font-weight:600;color:rgba(0,0,0,0.85);line-height:28px}.action-icons{display:flex;align-items:center;gap:4px;margin-left:16px}.header-right{display:flex;align-items:center;gap:16px;position:relative}.divider{width:1px;height:20px;background-color:rgba(0,0,0,0.15)}.icon-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:8px;background:none;cursor:pointer;color:inherit;flex-shrink:0;transition:background-color 0.2s ease}.icon-button eo-icon{font-size:16px;color:rgba(0,0,0,0.65);transition:color 0.2s ease}.icon-button:hover{background:rgba(0,0,0,0.04)}.icon-button:active{background:rgba(0,0,0,0.08)}.icon-button:focus{outline:none}.icon-button.active{background:rgba(0,0,0,0.06)}.space-description{padding:18px 20px;background-color:rgba(184,187,205,0.2);border-radius:12px;margin:4px 24px;display:flex;flex-direction:column;gap:11px;overflow:hidden;animation:slideDown 0.3s ease-out;transform-origin:top;position:relative}@keyframes slideDown{from{opacity:0;transform:translateY(-10px);max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}to{opacity:1;transform:translateY(0);max-height:500px;margin-top:4px;margin-bottom:12px;padding-top:18px;padding-bottom:18px}}.description-header{display:flex;align-items:center;justify-content:space-between}.description-title{font-size:14px;font-weight:500;line-height:15px;color:rgba(0,0,0,0.85);text-transform:uppercase;letter-spacing:0.6172px;margin:0}.description-edit-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:none;cursor:pointer;color:rgba(0,0,0,0.45);transition:all 0.2s ease;flex-shrink:0}.description-edit-button eo-icon{font-size:14px;color:rgba(0,0,0,0.45);transition:color 0.2s ease}.description-edit-button:hover{background:rgba(0,0,0,0.06)}.description-edit-button:hover eo-icon{color:rgba(0,0,0,0.65)}.description-edit-button:active{background:rgba(0,0,0,0.1)}.description-edit-button:focus{outline:none}.description-content{font-size:14px;font-weight:400;line-height:22.75px;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\";\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;width:100%}: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}.space-workbench-container{display:flex;flex-direction:column;height:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*{box-sizing:border-box}.trigger{display:flex;align-items:center;font-size:14px;cursor:pointer;position:relative;padding:4px 12px;border-radius:15px;color:var(--elevo-color-brand)}.trigger:hover{background-color:rgba(37,64,255,0.06)}.trigger::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:linear-gradient(145deg,rgba(37,64,255,1),rgba(180,95,248,1));border-radius:15px;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:xor;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}.trigger .label{margin-right:0}.label{max-width:650px;margin-right:0.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown{max-width:500px;border-radius:4px;background:var(--antd-dropdown-menu-bg);box-shadow:var(--antd-box-shadow-base)}.dropdown-inner{padding:9px 4px}.search-container{padding:3px;border-bottom:1px solid rgba(0,0,0,0.08)}.search::part(affix-wrapper){box-shadow:none;border:none}eo-menu{border:0;padding:0;background:none;border-radius:0}eo-menu-item::part(menu-item){padding:5px 8px;line-height:22px;border-radius:var(--medius-border-radius)}eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}.active::part(menu-item){font-weight:600;background-color:var(--left-sidebar-item-hover-bg)}.empty{display:flex;justify-content:center;align-items:center;color:var(--color-secondary-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1020px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.tips{color:rgba(0,0,0,0.45);margin-bottom:27px}.cases{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/purple@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/green@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./images/pink@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.link{display:block;background:rgba(255,255,255,0.6);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;background-repeat:no-repeat;background-clip:padding-box;overflow:hidden}.purple{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.green{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.pink{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___})}.link::part(link){display:flex;flex-direction:column;gap:0;box-sizing:border-box;height:128px;padding:20px;position:relative}.title{width:100%;margin-bottom:8px;color:#262626;font-weight:500;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{width:100%;height:60px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;color:#18212f;line-height:20px}.link::part(link):hover{box-shadow:0px 4px 12px 0px rgba(96,96,138,0.15),0px 2px 4px 0px rgba(96,96,138,0.06)}.button{display:none;position:absolute;bottom:12px;left:20px;right:20px;height:32px;background:rgba(0,0,0,0.04);border-radius:8px;align-items:center;justify-content:center;gap:4px;color:#262626}.button:hover{background:rgba(0,0,0,0.08)}.link:hover .button{display:flex}.link:hover .description{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 60%;mask-size:100% 60%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.goal-item{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding: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}:host([active]) button:not(:disabled),\nbutton: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-size:28px;line-height:40px;font-weight:600;display:flex;min-width:0;white-space:nowrap;flex-wrap:wrap}nav.with-breadcrumbs{font-weight:500;font-size:20px;line-height:28px}h1{margin:0;font-size:inherit;line-height:inherit;font-weight: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}.toolbar{display:flex;align-items:center;gap:8px;white-space:nowrap}@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, `.panel--ukaGUcR2{display:flex;flex-direction:column;min-height:300px;height:100%}.narrow--NBtGp4vW{width:100%;max-width:800px;margin:0 auto}.main--K5R8dLH9{position:relative;flex:1;min-height:0}.chat--Drl2ThnZ{padding:0 0 20px;height:100%;overflow-y:auto}.messages--Bhaarj69{width:100%;margin:0 auto}.message--TP5bdFpZ + .message--TP5bdFpZ{margin-top:40px}.loading-icon--BjI0pCV1{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"panel\": `panel--ukaGUcR2`,\n\t\"narrow\": `narrow--NBtGp4vW`,\n\t\"main\": `main--K5R8dLH9`,\n\t\"chat\": `chat--Drl2ThnZ`,\n\t\"messages\": `messages--Bhaarj69`,\n\t\"message\": `message--TP5bdFpZ`,\n\t\"loading-icon\": `loading-icon--BjI0pCV1`\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, `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{position:relative;background-color:#fff;border:2px solid transparent;border-radius:12px;background-image:linear-gradient(#fff,#fff),linear-gradient(338deg,rgba(198,183,247,1),rgba(157,198,255,1),rgba(153,196,255,1));background-origin:border-box;background-clip:padding-box,border-box;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}:host([auto-fade]) .container:not(:has(textarea:focus)){background: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}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.space-guide-container{display:flex;flex-direction:column;align-items:center;margin:0 auto}.guide-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:60px}.space-logo{margin-bottom:24px}.guide-title{font-size:24px;font-weight:600;line-height:32px;color:rgba(0,0,0,0.88);margin:0 0 16px 0}.guide-description{font-size:16px;line-height:26px;color:rgba(0,0,0,0.65);margin:0;max-width:600px}.guide-content{width:100%}.section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;line-height:20px;color:#0f172b;margin-bottom:24px}.section-icon{width:16px;height:16px}.cards-grid{display:grid;grid-template-columns:repeat(3,220px);gap:16px}.guide-card{height:110px;border-radius:12px;padding:24px;overflow:hidden;cursor:pointer;transition:transform 0.2s ease,box-shadow 0.2s ease;border:1px solid rgba(0,0,0,0.1);background-size:cover;background-repeat:no-repeat;background-position:center}.guide-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.08)}.card-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}.card-icon{width:32px;height:32px;margin-bottom:16px}.card-title{font-size:14px;font-weight:500;line-height:20px;color:rgba(0,0,0,0.88);margin:0 0 8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-description{font-size:12px;line-height:18px;color:rgba(0,0,0,0.45);margin:0;flex:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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(\"../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","_U","_V","_CruiseCanvas_brand","WeakSet","_onShare","_W","_onTerminate","_X","_onSubmitFeedback","_Y","_onFeedbackOnView","_Z","_onSwitchToChat","_a","_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_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_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","aiEmployees","commands","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","K","en","ASK_ANY_THING","COMMON_TASKS","COMMAND_TIPS","SEARCH_COMMANDS_TIPS","zh","t","i18n","getFixedT","chatCommand","setChatCommand","command","customElements","define","createProviderClass","chatEmployee","setChatMentionedEmployee","chatMentionedEmployee","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","ChatBoxComponent","LegacyChatBoxComponent","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_handleChatSubmit","ChatBox","_defineProperty","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","disabled","placeholder","autoFocus","setValue","_this$ref$current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","onMessageSubmit","onChatSubmit","root","containerRef","useRef","uploadEnabled","enabled","uploadAccept","accept","files","resetFiles","appendFiles","removeFile","hasFiles","allFilesDone","fileInfos","exceeded","paste","useFilesUploading","useEffect","textareaRef","valueRef","selectionRef","mentioned","mentionedText","mentionPopover","mentionOverlay","mentionActiveKeys","setInitialMention","handleMention","commandText","commandPrefix","commandPopover","commandOverlay","commandActiveKeys","setInitialCommand","handleSelectCommand","handleChange","handleKeyDown","useChatCompletions","employee","employeeId","store","window","__elevo_try_it_out","content","cmd","getInitialContent","slice","mentionedAiEmployeeId","useImperativeHandle","_textareaRef$current","focus","sendDisabled","length","doSubmit","useCallback","aiEmployeeId","handleSubmit","currentTarget","handleSubmitClick","Promise","resolve","then","_textareaRef$current2","uploadButtonRef","onFilesDropped","_textareaRef$current3","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","desiredSelectionRef","onSubmit","onChange","onKeyDown","onPaste","style","paddingTop","UploadedFiles","onRemove","uid","abortController","abort","onAdd","_uploadButtonRef$curr","requestUpload","name","UploadButton","_textareaRef$current4","onClick","lib","prefix","icon","map","overlay","index","key","createPortal","actions","activeKeys","footerTips","document","body","count","GlobalDragOverlay","_ChatBox2","_set_messageSubmit","_set_chatSubmit","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","label","size","lineColor","showArea","min","max","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","width","height","_StatWithMiniChart2","SIDEBAR_ICON","WrappedElevoLogo","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleActionClick","_handleProjectActionClick","_handleAddProject","_handleAddServiceflow","_handlePersonalActionClick","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_showProjects","_init_extra_showProjects","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_personalActions","_init_extra_personalActions","_init_links","_init_extra_links","_init_canAddProject","_init_extra_canAddProject","_init_myLinks","_init_extra_myLinks","_init_scope","_init_extra_scope","_init_spaceNav","_init_extra_spaceNav","_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","_init_addServiceflow","_init_extra_addServiceflow","_get_addServiceflow","_init_personalActionClick","_init_extra_personalActionClick","_get_personalActionClick","userInstanceId","behavior","logoUrl","newChatUrl","newChatLinkWhenCollapsed","historyUrlTemplate","historyActions","showProjects","projectUrlTemplate","projectActions","personalActions","links","canAddProject","myLinks","scope","spaceNav","pullHistory","delay","setTimeout","pull","open","close","removeProject","projectId","addProject","project","_classPrivateFieldGet7","_classPrivateFieldGet8","moveConversation","_classPrivateFieldGet9","_classPrivateFieldGet0","onLogout","onProjectActionClick","onAddProject","onAddServiceflow","onPersonalActionClick","_ref2","collapsed","setCollapsed","useState","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","useMemo","text","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","SpaceNav","link","NavLink","activeIncludes","_ref3","active","title","ChatHistory","onHistoryClick","WrappedDropdownActions","themeVariant","async","action","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_actionClick","_set_projectActionClick","_set_addProject","_set_addServiceflow","_set_personalActionClick","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_active","_init_extra_active","_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","groups","Set","item","scenario","filter","activeGroup","setActiveGroup","filteredList","filtered","tabs","group","activeTab","caseTitle","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","Map","servers","WrappedStickyContainer","_McpTools","McpTools","_init_stickyTop","_init_extra_stickyTop","stickyTop","McpToolsComponent","groupMap","platformMap","forEach","groupName","server","replaceAll","get","set","platform","entries","find","_name","includes","platformName","orderedNames","sort","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","tabsNode","top","_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","toLowerCase","handleBeforeVisibleChange","handleSearchChange","debounce","evt","placement","trigger","arrow","distance","slot","maxWidth","undefined","preventDefault","stopPropagation","_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","remove","_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","textContent","trim","blur","titleRef","_titleRef$current","paddingLeft","level","onFocus","onBlur","onCompositionStart","onCompositionEnd","contentEditable","editable","div","createElement","setAttribute","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","Math","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","target","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","ChatInputComponent","LegacyChatInputComponent","_ChatInput","_ChatInput_brand","_handleTerminate","ChatInput","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_autoFade","_init_extra_autoFade","_init_suggestionsPlacement","_init_extra_suggestionsPlacement","_init_terminate","_init_extra_terminate","_get_terminate","submitDisabled","supportsTerminate","terminating","autoFade","suggestionsPlacement","wrap","setWrap","observer","ResizeObserver","contentBoxSize","blockSize","contentRect","observe","disconnect","handleContainerClick","nativeEvent","composedPath","HTMLTextAreaElement","HTMLButtonElement","maxRows","borderSize","MAX_SHOWN_COMMANDS","_textareaRef$current5","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","getBoundingClientRect","isFirstTab","tabOffset","tabsOffset","left","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","prev","_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","newValue","_StageFlow2","_set_addActivity","_set_editActivity","props","xmlns","viewBox","fillRule","d","strokeLinecap","_RunningFlow","_RunningFlow_brand","_handleActivityClick","RunningFlow","_init_activityClick","_init_extra_activityClick","activityId","_classPrivateGetter2","_get_activityClick","RunningFlowComponent","onActivityClick","StageIcon","getActivityStateClassName","taskId","getFlowOrActivityIcon","endTime","Duration","end","setEnd","countTime","setEndTime","Date","now","interval","setInterval","clearInterval","duration","ceilDuration","ceil","minutes","floor","seconds","String","padStart","formatDuration","_RunningFlow2","_set_activityClick","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","element","HTMLElement","showZero","dot","offset","_item$url","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","isRead","isAllSelected","every","handleSelectAll","checked","newSelectedIds","handleSelectItem","selectedId","_e$detail","NoticeListItem","selected","onSelectItem","checkboxRef","_e$detail2","_NoticeList2","_set_markItemsReadEvent","WrappedModal","onClose","onConfirm","onCancel","onOpen","ChatPanelComponent","LegacyChatPanelComponent","_ChatPanel","ChatPanel","_init_panelTitle","_init_extra_panelTitle","_init_aiEmployeeId","_init_extra_aiEmployeeId","_init_cmd","_init_extra_cmd","_init_width","_init_extra_width","_init_height","_init_extra_height","_init_help","_init_extra_help","_init_maskClosable","_init_extra_maskClosable","panelTitle","help","maskClosable","setInputValue","send","showFile","file","modalRef","inputRef","setSubmitDisabled","setConversationId","setInitialRequest","tasks","errors","humanInputRef","useConversationDetail","conversationAvailable","conversationState","conversationDone","DONE_STATES","conversationFinished","finished","earlyFinished","mode","NON_WORKING_STATES","canChat","messages","jobMap","useConversationStream","skipActivitySubTasks","humanInput","input","extra","_humanInputRef$curren","depsReady","setDepsReady","ignore","race","preloadHighlighter","finally","scrollContainerRef","scrollContentRef","scrollable","scrollToBottom","toggleAutoScroll","useAutoScroll","handleChatSubmit","handleHttpError","activeFile","setActiveFile","activeImages","setActiveImages","taskContextValue","_modalRef$current","_modalRef$current2","_inputRef$current","streamContextValue","lastDetail","planMap","setUserClosedAside","TaskContext","Provider","StreamContext","modalTitle","noFooter","headerBordered","fullscreenButton","background","backgroundImage","_inputRef$current2","panel","chat","narrow","msg","message","UserMessage","AssistantMessage","chunks","scopeState","isLatest","scrollStyles","floatingStyles","bottom","theme","ReactUseMultipleBricks","useBrick","WrappedChatInput","FilePreview","fromModal","ImagesPreview","images","_ChatPanel2","_SpaceLogo","SpaceLogo","SpaceLogoComponent","iconSize","round","borderRadius","spaceLogoSvg","_SpaceLogo2","WrappedNoticeDropdown","WrappedSpaceLogo","spaceName","notices","onBack","onMembersClick","onSpaceEdit","showDescription","setShowDescription","handleQuestionClick","minWidth","DESCRIPTION","SPACE_GUIDE_SECTION_TITLE","SPACE_GUIDE_CARD_1_TITLE","SPACE_GUIDE_CARD_2_TITLE","SPACE_GUIDE_CARD_3_TITLE","_SpaceWorkbench","_SpaceWorkbench_brand","SpaceWorkbench","_init_notices","_init_extra_notices","_init_spaceDetail","_init_extra_spaceDetail","_init__goBackEvent","_init_extra__goBackEvent","_init__membersClickEvent","_init_extra__membersClickEvent","_init__noticeClickEvent","_init_extra__noticeClickEvent","_init__markAllReadEvent","_init_extra__markAllReadEvent","_init__spaceEditEvent","_init_extra__spaceEditEvent","spaceDetail","SpaceWorkbenchComponent","_get__goBackEvent","_get__membersClickEvent","notice","_get__noticeClickEvent","_get__markAllReadEvent","_get__spaceEditEvent","_SpaceWorkbench2","_set__goBackEvent","_set__membersClickEvent","_set__noticeClickEvent","_set__markAllReadEvent","_set__spaceEditEvent","SpaceNavStyle","SpaceGuideStyle","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___"],"sourceRoot":""}
|