@next-bricks/ai-portal 0.58.6 → 0.58.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/bricks.json +45 -45
  2. package/dist/chunks/1488.171d8f4f.js +2 -0
  3. package/dist/chunks/1488.171d8f4f.js.map +1 -0
  4. package/dist/chunks/151.98b4630f.js +2 -0
  5. package/dist/chunks/151.98b4630f.js.map +1 -0
  6. package/dist/chunks/2232.fb0bce86.js +2 -0
  7. package/dist/chunks/2232.fb0bce86.js.map +1 -0
  8. package/dist/chunks/2324.17662f31.js +2 -0
  9. package/dist/chunks/2324.17662f31.js.map +1 -0
  10. package/dist/chunks/{chat-box.041da849.js → chat-box.6eab985e.js} +2 -2
  11. package/dist/chunks/chat-box.6eab985e.js.map +1 -0
  12. package/dist/chunks/chat-input.fce2d021.js +2 -0
  13. package/dist/chunks/chat-input.fce2d021.js.map +1 -0
  14. package/dist/chunks/chat-stream.541a3565.js +2 -0
  15. package/dist/chunks/chat-stream.541a3565.js.map +1 -0
  16. package/dist/chunks/{main.d38cd700.js → main.15818e0c.js} +2 -2
  17. package/dist/chunks/{main.d38cd700.js.map → main.15818e0c.js.map} +1 -1
  18. package/dist/chunks/notice-dropdown.4d0fa5c5.js +2 -0
  19. package/dist/chunks/notice-dropdown.4d0fa5c5.js.map +1 -0
  20. package/dist/examples.json +23 -23
  21. package/dist/{index.95f2837d.js → index.c4df1948.js} +2 -2
  22. package/dist/{index.95f2837d.js.map → index.c4df1948.js.map} +1 -1
  23. package/dist/manifest.json +351 -340
  24. package/dist/types.json +1506 -1321
  25. package/dist-types/chat-stream/ChatStream.d.ts +3 -1
  26. package/dist-types/cruise-canvas/FileList/FileList.d.ts +2 -1
  27. package/dist-types/notice-dropdown/index.d.ts +5 -0
  28. package/dist-types/shared/FileUpload/GlobalDragOverlay.d.ts +3 -3
  29. package/dist-types/shared/FileUpload/i18n.d.ts +6 -1
  30. package/dist-types/shared/FileUpload/validateFiles.d.ts +2 -0
  31. package/dist-types/shared/bricks.d.ts +2 -1
  32. package/dist-types/shared/interfaces.d.ts +4 -0
  33. package/package.json +2 -2
  34. package/dist/chunks/1488.8388b745.js +0 -2
  35. package/dist/chunks/1488.8388b745.js.map +0 -1
  36. package/dist/chunks/151.21608da8.js +0 -2
  37. package/dist/chunks/151.21608da8.js.map +0 -1
  38. package/dist/chunks/2232.c2811097.js +0 -2
  39. package/dist/chunks/2232.c2811097.js.map +0 -1
  40. package/dist/chunks/2324.c7c2427a.js +0 -2
  41. package/dist/chunks/2324.c7c2427a.js.map +0 -1
  42. package/dist/chunks/chat-box.041da849.js.map +0 -1
  43. package/dist/chunks/chat-input.2c5e645b.js +0 -2
  44. package/dist/chunks/chat-input.2c5e645b.js.map +0 -1
  45. package/dist/chunks/chat-stream.da44fc66.js +0 -2
  46. package/dist/chunks/chat-stream.da44fc66.js.map +0 -1
  47. package/dist/chunks/notice-dropdown.6262ed81.js +0 -2
  48. package/dist/chunks/notice-dropdown.6262ed81.js.map +0 -1
  49. package/dist-types/shared/FileUpload/acceptFiles.d.ts +0 -1
  50. /package/dist-types/shared/FileUpload/{acceptFiles.spec.d.ts → validateFiles.spec.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/2324.17662f31.js","mappings":"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","sources":["webpack:///./src/shared/FileUpload/i18n.ts","webpack:///./src/shared/FileUpload/validateFiles.ts","webpack:///./src/shared/FileUpload/GlobalDragOverlay.module.css?40e0","webpack:///./src/shared/FileUpload/GlobalDragOverlay.tsx","webpack:///./src/shared/FileUpload/GlobalDragOverlay.module.css","webpack:///./src/shared/FileUpload/UploadedFiles.tsx","webpack:///./src/shared/useFilesUploading.ts","webpack:///./src/shared/FileUpload/UploadedFiles.shadow.css","webpack:///./src/shared/FileUpload/UploadButton.tsx","webpack:///../../../src/utils/getMirroredStyle.ts","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx"],"sourcesContent":["import { i18n, initializeI18n } from \"@next-core/i18n\";\n\nexport enum K {\n UPLOAD_FILES = \"UPLOAD_FILES\",\n UPLOADING = \"UPLOADING\",\n UPLOAD_FAILED = \"UPLOAD_FAILED\",\n DROP_FILES_HERE = \"DROP_FILES_HERE\",\n SUPPORTED_FILE_TYPES = \"SUPPORTED_FILE_TYPES\",\n UNSUPPORTED_FILE_TYPE = \"UNSUPPORTED_FILE_TYPE\",\n MAX_SIZE_EXCEEDED = \"MAX_SIZE_EXCEEDED\",\n MAX_SIZE_EXCEEDED_UNKNOWN = \"MAX_SIZE_EXCEEDED_UNKNOWN\",\n MAX_FILES_EXCEEDED = \"MAX_FILES_EXCEEDED\",\n}\n\nconst en: Locale = {\n UPLOAD_FILES: \"Upload files\",\n UPLOADING: \"Uploading...\",\n UPLOAD_FAILED: \"Upload failed\",\n DROP_FILES_HERE: \"Drop files here\",\n SUPPORTED_FILE_TYPES: \"Supported file types: {{types}}.\",\n UNSUPPORTED_FILE_TYPE: \"Some files have unsupported file types.\",\n MAX_SIZE_EXCEEDED: \"Maximum single file size: {{size}}.\",\n MAX_SIZE_EXCEEDED_UNKNOWN: \"Some files exceed the maximum allowed size.\",\n MAX_FILES_EXCEEDED: \"Maximum number of files ({{count}}) exceeded.\",\n};\n\nconst zh: Locale = {\n UPLOAD_FILES: \"上传文件\",\n UPLOADING: \"上传中...\",\n UPLOAD_FAILED: \"上传失败\",\n DROP_FILES_HERE: \"在此处拖放文件\",\n SUPPORTED_FILE_TYPES: \"仅支持以下文件类型:{{types}}。\",\n UNSUPPORTED_FILE_TYPE: \"部分文件类型不受支持。\",\n MAX_SIZE_EXCEEDED: \"单个文件不能超过 {{size}}。\",\n MAX_SIZE_EXCEEDED_UNKNOWN: \"部分文件超过允许的最大大小。\",\n MAX_FILES_EXCEEDED: \"超过允许的最大文件数量 ({{count}})。\",\n};\n\nexport const NS = \"bricks/ai-portal/FileUpload\";\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\ninitializeI18n(NS, locales);\n","import { handleHttpError } from \"@next-core/runtime\";\nimport type { UploadOptions } from \"../interfaces\";\nimport { K, t } from \"./i18n\";\n\nexport function validateFiles(files: File[], options: UploadOptions) {\n const acceptedTypes = options.accept\n ? options.accept.split(\",\").map((type) => type.trim())\n : null;\n\n for (const file of files) {\n if (acceptedTypes) {\n const mimeType = file.type;\n const accepted = acceptedTypes.some((type) => {\n if (type === \"*/*\" || type === \"*\") {\n return true;\n }\n if (type.startsWith(\".\")) {\n return file.name.toLowerCase().endsWith(type.toLowerCase());\n }\n if (type.endsWith(\"/*\")) {\n const baseType = type.split(\"/\")[0];\n return mimeType.startsWith(`${baseType}/`);\n }\n return mimeType === type;\n });\n if (!accepted) {\n handleHttpError(\n options.readableAccept\n ? t(K.SUPPORTED_FILE_TYPES, { types: options.readableAccept })\n : t(K.UNSUPPORTED_FILE_TYPE)\n );\n return false;\n }\n }\n\n if (options.maxSize && file.size > options.maxSize) {\n handleHttpError(\n options.readableMaxSize\n ? t(K.MAX_SIZE_EXCEEDED, { size: options.readableMaxSize })\n : t(K.MAX_SIZE_EXCEEDED_UNKNOWN)\n );\n return false;\n }\n }\n\n return true;\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]!./GlobalDragOverlay.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]!./GlobalDragOverlay.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport dragImage from \"./drag-file@2x.png\";\nimport { K, t } from \"./i18n\";\nimport styles from \"./GlobalDragOverlay.module.css\";\nimport { validateFiles } from \"./validateFiles\";\nimport type { UploadOptions } from \"../interfaces\";\n\nexport interface GlobalDragOverlayProps {\n disabled?: boolean;\n uploadOptions?: UploadOptions;\n onFilesDropped?: (files: File[]) => void;\n}\n\nexport default function GlobalDragOverlay({\n disabled,\n uploadOptions,\n onFilesDropped,\n}: GlobalDragOverlayProps) {\n const [isDragging, setIsDragging] = useState(false);\n const dragCounterRef = useRef(0);\n\n useEffect(() => {\n if (disabled) {\n dragCounterRef.current = 0;\n setIsDragging(false);\n return;\n }\n\n const handleDragEnter = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n for (const target of e.composedPath()) {\n if (\n target instanceof HTMLElement &&\n (target.tagName === \"EO-DRAWER\" || target.tagName === \"EO-MODAL\")\n ) {\n return;\n }\n }\n\n // 只在拖入文件时触发(排除文字、链接等)\n const hasFiles = Array.from(e.dataTransfer?.items || []).some(\n (item) => item.kind === \"file\"\n );\n if (!hasFiles) return;\n\n dragCounterRef.current++;\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (dragCounterRef.current > 0) {\n dragCounterRef.current--;\n }\n if (dragCounterRef.current === 0) setIsDragging(false);\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n dragCounterRef.current = 0;\n setIsDragging(false);\n\n const files = Array.from(e.dataTransfer!.files);\n if (files.length > 0) {\n const allFilesAccepted = validateFiles(files, uploadOptions!);\n if (allFilesAccepted) {\n onFilesDropped?.(files);\n }\n }\n };\n\n window.addEventListener(\"dragenter\", handleDragEnter);\n window.addEventListener(\"dragleave\", handleDragLeave);\n window.addEventListener(\"dragover\", handleDragOver);\n window.addEventListener(\"drop\", handleDrop);\n\n return () => {\n window.removeEventListener(\"dragenter\", handleDragEnter);\n window.removeEventListener(\"dragleave\", handleDragLeave);\n window.removeEventListener(\"dragover\", handleDragOver);\n window.removeEventListener(\"drop\", handleDrop);\n };\n }, [disabled, uploadOptions, onFilesDropped]);\n\n if (!isDragging) {\n return null;\n }\n\n return createPortal(\n <div className={styles.overlay}>\n <img src={dragImage} width=\"91\" height=\"79\" />\n <div className={styles.title}>{t(K.DROP_FILES_HERE)}</div>\n <div className={styles.description}>{uploadOptions?.dragTips}</div>\n </div>,\n document.body\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, `.overlay--SI1oXhAV{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(255,255,255,0.1);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999}.title--FmBT01QV{font-weight:600;font-size:20px;color:rgba(0,0,0,0.88);line-height:28px;margin-top:17px}.description--Yhdhm5wT{color:rgba(0,0,0,0.45);font-size:14px;margin-top:11px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"overlay\": `overlay--SI1oXhAV`,\n\t\"title\": `title--FmBT01QV`,\n\t\"description\": `description--Yhdhm5wT`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import React, { useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { FileItem } from \"./interfaces\";\nimport {\n formatFileSize,\n getFileTypeAndIcon,\n} from \"../../cruise-canvas/utils/file\";\nimport { K, t } from \"./i18n\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface UploadedFilesProps {\n files: FileItem[];\n maxFiles?: number;\n className?: string;\n onRemove: (uid: number, abortController: AbortController | undefined) => void;\n onAdd: () => void;\n}\n\nexport function UploadedFiles({\n files,\n maxFiles,\n className,\n onRemove,\n onAdd,\n}: UploadedFilesProps) {\n const showAsImage = files.every((file) =>\n file.file.type.startsWith(\"image/\")\n );\n\n return (\n <ul\n className={classNames(\"files\", className)}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n {files.map((file) => (\n <FileComponent\n {...file}\n key={file.uid}\n showAsImage={showAsImage}\n onRemove={onRemove}\n />\n ))}\n {!maxFiles || files.length < maxFiles ? (\n <li>\n <button className=\"btn-add-file\" onClick={onAdd}>\n <WrappedIcon lib=\"antd\" icon=\"plus\" />\n </button>\n </li>\n ) : null}\n </ul>\n );\n}\n\ninterface FileComponentProps extends FileItem {\n showAsImage?: boolean;\n onRemove: (uid: number, abortController: AbortController | undefined) => void;\n}\n\nfunction FileComponent({\n uid,\n file,\n status,\n abortController,\n showAsImage,\n onRemove,\n}: FileComponentProps) {\n const [type, icon] = getFileTypeAndIcon(file.type, file.name);\n const size = formatFileSize(file.size);\n const isImage = file.type.startsWith(\"image/\");\n const [image, setImage] = useState<string | undefined>();\n\n useEffect(() => {\n if (isImage) {\n const url = URL.createObjectURL(file);\n setImage(url);\n return () => {\n URL.revokeObjectURL(url);\n };\n } else {\n setImage(undefined);\n }\n }, [file, isImage]);\n\n const buttonRemove = (\n <button\n className=\"file-remove\"\n onClick={() => {\n onRemove(uid, abortController);\n }}\n >\n <WrappedIcon lib=\"antd\" theme=\"filled\" icon=\"close-circle\" />\n </button>\n );\n\n if (showAsImage) {\n return (\n <li\n className={classNames(\"file as-image\", { failed: status === \"failed\" })}\n >\n <img className=\"file-image\" src={image} />\n {status === \"uploading\" && (\n <div className=\"file-overlay\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n {status === \"failed\" && (\n <div className=\"file-overlay\">{t(K.UPLOAD_FAILED)}</div>\n )}\n {buttonRemove}\n </li>\n );\n }\n\n return (\n <li\n className={classNames(\"file\", {\n failed: status === \"failed\",\n uploading: status === \"uploading\",\n })}\n >\n {isImage ? (\n <img className=\"file-image\" src={image} />\n ) : (\n <img className=\"file-icon\" src={icon} width={26} height={32} />\n )}\n <div className=\"file-content\">\n <div className=\"file-name\">{file.name}</div>\n <div className=\"file-metadata\">\n <span className=\"file-status\">\n {`${status === \"uploading\" ? t(K.UPLOADING) : status === \"failed\" ? t(K.UPLOAD_FAILED) : type}`}\n </span>\n {` · ${size}`}\n </div>\n </div>\n {buttonRemove}\n </li>\n );\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport { http } from \"@next-core/http\";\nimport type { FileItem } from \"./FileUpload/interfaces\";\nimport type { UploadFileInfo, UploadOptions } from \"./interfaces\";\nimport { validateFiles } from \"./FileUpload/validateFiles\";\nimport { K, t } from \"./FileUpload/i18n\";\n\nlet uid = 0;\n\nexport function getNextUid() {\n return uid++;\n}\n\nexport function useFilesUploading(options?: UploadOptions) {\n const enabled = options?.enabled;\n const maxFiles = options?.maxFiles;\n const [files, setFiles] = useState<FileItem[] | undefined>();\n const hasFiles = !!files && files.length > 0;\n\n useEffect(() => {\n files?.forEach(async (fileItem) => {\n if (fileItem.status === \"ready\") {\n const abortController = new AbortController();\n\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return { ...item, status: \"uploading\", abortController };\n }\n return item;\n });\n });\n\n try {\n const formData = new FormData();\n formData.append(\"file\", fileItem.file);\n\n const response = await http.request<{ data: UploadFileInfo }>(\n \"api/gateway/logic.llm.aiops_service/api/v1/elevo/files/upload\",\n {\n method: \"POST\",\n body: formData,\n signal: abortController.signal,\n },\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return {\n ...item,\n status: \"done\",\n fileInfo: response.data,\n };\n }\n return item;\n });\n });\n } catch (error) {\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return { ...item, status: \"failed\" };\n }\n return item;\n });\n });\n handleHttpError(error);\n }\n }\n });\n }, [files]);\n\n const [allFilesDone, setAllFilesDone] = useState(true);\n const [fileInfos, setFileInfos] = useState<UploadFileInfo[] | undefined>();\n const initialRef = useRef(true);\n\n useEffect(() => {\n const allFilesDone =\n !files || files.every((file) => file.status === \"done\");\n setAllFilesDone(allFilesDone);\n if (initialRef.current) {\n initialRef.current = false;\n return;\n }\n if (allFilesDone) {\n setFileInfos(files?.map((file) => file.fileInfo!));\n }\n }, [files]);\n\n const appendFiles = useCallback(\n (newFiles: File[]) => {\n if (!validateFiles(newFiles, options!)) {\n return;\n }\n\n setFiles((prev) => {\n const prevList = prev ?? [];\n if (maxFiles && prevList.length + newFiles.length > maxFiles) {\n handleHttpError(t(K.MAX_FILES_EXCEEDED, { count: maxFiles }));\n return prev;\n }\n return [\n ...prevList,\n ...newFiles.map<FileItem>((file) => ({\n uid: getNextUid(),\n file,\n status: \"ready\",\n })),\n ];\n });\n },\n [maxFiles, options]\n );\n\n const resetFiles = useCallback(() => {\n setFiles(undefined);\n }, []);\n\n const removeFile = useCallback((uid: number) => {\n setFiles((prev) => prev?.filter((file) => file.uid !== uid));\n }, []);\n\n const exceeded = !!maxFiles && !!files && files.length >= maxFiles;\n\n const paste = useCallback(\n (e: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (!enabled) {\n return;\n }\n const fileList = e.clipboardData.files;\n if (fileList.length > 0 && enabled) {\n e.preventDefault();\n e.stopPropagation();\n const files = [...fileList];\n const allFilesAccepted = validateFiles(files, options!);\n if (allFilesAccepted) {\n appendFiles(files);\n }\n }\n },\n [enabled, options, appendFiles]\n );\n\n return {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\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, `.files{list-style:none;margin:0;padding:4px 0 0;position:absolute;display:flex;gap:8px;top:10px;left:16px;right:16px;overflow-x:auto}.file{background:rgba(0,0,0,0.04);border-radius:6px;display:flex;width:200px;height:60px;align-items:center;padding:0 8px;position:relative}.file.uploading::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0.06);border-radius:6px;animation:loadingAnimation 1.5s linear infinite}@keyframes loadingAnimation{0%{right:100%}100%{right:0}}.file-content{min-width:0;flex:1}.file-icon{margin:0 11px 0 6px}.file-image{margin-right:8px;object-fit:cover;border-radius:4px;max-width:44px;max-height:44px}.file-name,\n.file-metadata{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name{color:rgba(0,0,0,0.88)}.file-metadata{color:rgba(0,0,0,0.45);font-size:12px;margin-top:3px}.file-remove{position:absolute;top:-4px;right:-4px;font-size:12px;padding:1px;display:flex;color:rgba(0,0,0,0.88);cursor:pointer;background:#fff;border-radius:14px}.file:not(:hover) .file-remove{display:none}.btn-add-file{border-radius:6px;border:1px dashed rgba(0,0,0,0.1);color:rgba(0,0,0,0.45);font-size:16px;display:flex;width:60px;height:60px;align-items:center;justify-content:center;cursor:pointer}.btn-add-file:hover{background:rgba(0,0,0,0.04)}.file.failed .file-status{color:var(--color-error)}.file.as-image{width:60px;border:1px solid rgba(0,0,0,0.1);padding:0;background:none;justify-content:center}.file.as-image .file-image{max-width:100%;max-height:100%;margin:0;border-radius:6px}.file.as-image.failed{border-color:#f24c25}.file-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,10,26,0.45);border-radius:6px;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:20px}.file.failed .file-overlay{background:rgba(0,10,26,0.7);color:#ff754f;font-size:12px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React, { forwardRef, useImperativeHandle, useRef } from \"react\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { IconButton, IconButtonProps } from \"../../icon-button\";\nimport { K, t } from \"./i18n\";\n\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst ICON_UPLOAD: GeneralIconProps = {\n lib: \"lucide\",\n icon: \"paperclip\",\n};\n\nexport interface UploadButtonProps {\n accept?: string;\n disabled?: boolean;\n onChange?: (files: File[]) => void;\n}\n\nexport interface UploadButtonRef {\n requestUpload: () => void;\n}\n\nexport const UploadButton = forwardRef(LegacyUploadButton);\n\nfunction LegacyUploadButton(\n { accept, disabled, onChange }: UploadButtonProps,\n ref: React.Ref<UploadButtonRef>\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (files) {\n onChange?.(Array.from(files));\n }\n e.target.value = \"\";\n };\n\n useImperativeHandle(ref, () => ({\n requestUpload: () => {\n inputRef.current?.click();\n },\n }));\n\n return (\n <>\n <input\n type=\"file\"\n accept={accept}\n multiple\n hidden\n ref={inputRef}\n onChange={handleInputChange}\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n <WrappedIconButton\n variant=\"light\"\n className=\"btn-upload\"\n icon={ICON_UPLOAD}\n tooltip={t(K.UPLOAD_FILES)}\n disabled={disabled}\n onClick={(e) => {\n e.stopPropagation();\n inputRef.current?.click();\n }}\n />\n </>\n );\n}\n","const HIDDEN_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n left: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\n/**\n * 创建一个镜像元素,用于计算光标位置或文本尺寸。\n */\nexport function getMirroredStyle(element: HTMLElement) {\n const uiTextNodeStyle = window.getComputedStyle(element);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n return `${sizingStyle};${HIDDEN_STYLE}`;\n}\n","// istanbul ignore file\nimport type React from \"react\";\nimport { getMirroredStyle } from \"./getMirroredStyle.js\";\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n // equal style\n hiddenTextarea.setAttribute(\"style\", getMirroredStyle(uiTextNode));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n desiredSelectionRef?: React.MutableRefObject<{\n start: number;\n end: number;\n } | null>;\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * The handler can return false to prevent default behavior (submit)\n */\n onKeyDown?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void | false;\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n element: HTMLTextAreaElement | null;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n desiredSelectionRef,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n element: textareaRef.current,\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (onKeyDown?.(e) === false) {\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n useLayoutEffect(() => {\n const desiredSelection = desiredSelectionRef?.current;\n const textarea = textareaRef.current;\n if (desiredSelection && textarea) {\n const { start, end } = desiredSelection;\n desiredSelectionRef.current = null;\n textarea.setSelectionRange(start, end);\n }\n }, [desiredSelectionRef, value]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n"],"names":["K","NS","t","i18n","getFixedT","initializeI18n","en","UPLOAD_FILES","UPLOADING","UPLOAD_FAILED","DROP_FILES_HERE","SUPPORTED_FILE_TYPES","UNSUPPORTED_FILE_TYPE","MAX_SIZE_EXCEEDED","MAX_SIZE_EXCEEDED_UNKNOWN","MAX_FILES_EXCEEDED","zh","validateFiles","files","options","acceptedTypes","accept","split","map","type","trim","file","mimeType","some","startsWith","name","toLowerCase","endsWith","baseType","handleHttpError","readableAccept","types","maxSize","size","readableMaxSize","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","GlobalDragOverlay","_ref","disabled","uploadOptions","onFilesDropped","isDragging","setIsDragging","useState","dragCounterRef","useRef","useEffect","current","handleDragEnter","e","_e$dataTransfer","preventDefault","stopPropagation","target","composedPath","HTMLElement","tagName","Array","from","dataTransfer","items","item","kind","handleDragLeave","handleDragOver","handleDrop","length","window","addEventListener","removeEventListener","createPortal","React","className","styles","overlay","src","dragImage","width","height","title","description","dragTips","document","body","___CSS_LOADER_EXPORT___","push","module","id","WrappedIcon","wrapBrick","UploadedFiles","maxFiles","onRemove","onAdd","showAsImage","every","classNames","onClick","FileComponent","_extends","key","uid","lib","icon","_ref2","status","abortController","getFileTypeAndIcon","formatFileSize","isImage","image","setImage","url","URL","createObjectURL","revokeObjectURL","buttonRemove","theme","failed","spinning","uploading","useFilesUploading","enabled","setFiles","hasFiles","forEach","async","fileItem","AbortController","prevFiles","formData","FormData","append","response","http","request","method","signal","interceptorParams","ignoreLoadingBar","fileInfo","data","error","allFilesDone","setAllFilesDone","fileInfos","setFileInfos","initialRef","appendFiles","useCallback","newFiles","prev","prevList","count","resetFiles","removeFile","filter","exceeded","paste","fileList","clipboardData","toString","WrappedIconButton","ICON_UPLOAD","UploadButton","forwardRef","LegacyUploadButton","ref","onChange","inputRef","useImperativeHandle","requestUpload","_inputRef$current","click","multiple","hidden","value","variant","tooltip","_inputRef$current2","HIDDEN_STYLE","SIZING_STYLE","getMirroredStyle","element","uiTextNodeStyle","getComputedStyle","getPropertyValue","join","hiddenTextarea","modKey","test","navigator","platform","TextareaAutoResize","LegacyTextareaAutoResize","autoResize","_autoResize","minRows","maxRows","borderSize","paddingSize","containerRef","propValue","style","submitWhen","desiredSelectionRef","onSubmit","onKeyDown","onCompositionStart","onCompositionEnd","props","setValue","textareaRef","autoStyle","setAutoStyle","focus","textarea","_textarea$value","valueLength","setSelectionRange","doAutoResize","uiTextNode","minHeight","maxHeight","overflowY","createElement","setAttribute","appendChild","placeholder","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","shiftKey","useLayoutEffect","desiredSelection","start","end","container","previousInlineSize","observer","ResizeObserver","entries","entry","currentInlineSize","contentBoxSize","inlineSize","contentRect","isInitial","requestAnimationFrame","observe","disconnect"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[5944,6573],{1740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,o&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var r=n.sourceMap;r&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},16195:(e,t,n)=>{n.d(t,{I:()=>l,K:()=>o,NS:()=>s,t:()=>c});var a=n(52616);let o=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const r={[o.ASK_ANY_THING]:"Ask anything",[o.COMMON_TASKS]:"Common tasks"},i={[o.ASK_ANY_THING]:"询问任何问题",[o.COMMON_TASKS]:"常用任务"},s="bricks/ai-portal/chat-box",l={en:r,zh:i},c=a.i18n.getFixedT(null,s)},17753:(e,t,n)=>{n.d(t,{Bj:()=>o,Tl:()=>r});var a=n(30981);const o=(0,a.wrapBrick)("eo-icon"),r=(0,a.wrapBrick)("eo-actions",{onActionClick:"action.click",onItemDragEnd:"item.drag.end",onItemDragStart:"item.drag.start"});(0,a.wrapBrick)("ai-portal.icon-button")},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},24586:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(11369);function o(e,t,n){return(t=(0,a.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},30855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},47008:(e,t,n)=>{n.d(t,{A:()=>p});var a=n(36758),o=n.n(a),r=n(40935),i=n.n(r),s=n(20062),l=n.n(s),c=new URL(n(47336),n.b),u=i()(o()),d=l()(c);u.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${d}) 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)}`,""]);const p=u.toString()},47336:(e,t,n)=>{e.exports=n.p+"images/25c20165.png"},60136:(e,t,n)=>{n.d(t,{v7:()=>d,NL:()=>p,xf:()=>m});var a=n(61919);const o=n.p+"images/62542537.png",r=n.p+"images/94d7a053.png",i=n.p+"images/0e7e6764.png",s=n.p+"images/7944ebaf.png",l=n.p+"images/c7ec12fe.png",c=n.p+"images/3316492a.png",u=new Map([["md","text/markdown"],["pdf","application/pdf"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["txt","text/plain"],["csv","text/csv"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["png","image/png"],["gif","image/gif"],["bmp","image/bmp"],["webp","image/webp"],["svg","image/svg+xml"]]);function d(e){const[t,n]=a.pipes.unitFormat(e,"bytes",1),o=+t;return`${o>100?Math.round(o):o} ${n}`}function p(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",c];switch(n){case"text/markdown":case"text/x-markdown":return["Markdown",o];case"application/pdf":return["PDF",r];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",i];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",l];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",s]}return n.startsWith("text/")?["Text",o]:["File",c]}function m(e){var t;let n="";const a=null==e?void 0:e.match(/\.([^.]+)$/);return a&&(n=a[1].toLowerCase()),null!==(t=u.get(n))&&void 0!==t?t:"unknown"}},72591:e=>{var t=[];function n(e){for(var n=-1,a=0;a<t.length;a++)if(t[a].identifier===e){n=a;break}return n}function a(e,a){for(var r={},i=[],s=0;s<e.length;s++){var l=e[s],c=a.base?l[0]+a.base:l[0],u=r[c]||0,d="".concat(c," ").concat(u);r[c]=u+1;var p=n(d),m={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)t[p].references++,t[p].updater(m);else{var f=o(m,a);a.byIndex=s,t.splice(s,0,{identifier:d,updater:f,references:1})}i.push(d)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var r=a(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<r.length;i++){var s=n(r[i]);t[s].references--}for(var l=a(e,o),c=0;c<r.length;c++){var u=n(r[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}r=l}}},73656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},78404:(e,t,n)=>{n.d(t,{U:()=>r});var a=n(80592);let o;function r(e,t){o||(o=document.createElement("div"),o.setAttribute("tab-index","-1"),o.setAttribute("aria-hidden","true"),document.body.appendChild(o)),o.setAttribute("style",(0,a.w)(e)),o.textContent=e.value.slice(0,t);const n=document.createElement("span");n.textContent="​",o.appendChild(n);const r=n.getBoundingClientRect();return n.remove(),{top:r.top,left:r.left}}},86572:(e,t,n)=>{n.d(t,{I:()=>r});var a=n(80592);let o;function r(e,t,n){o||(o=document.createElement("div"),o.setAttribute("tab-index","-1"),o.setAttribute("aria-hidden","true"),document.body.appendChild(o)),o.setAttribute("style",(0,a.w)(e)),o.textContent=t;const r=document.createElement("span");r.textContent=n,o.appendChild(r);const i=r.getBoundingClientRect();if(r.remove(),n.length<=1)return[i];const s=n[0],l=document.createElement("span");l.textContent=s,o.appendChild(l);const c=l.getBoundingClientRect();l.remove(),o.textContent=`${t}${n.slice(0,-1)}`;const u=n[n.length-1],d=document.createElement("span");d.textContent=u,o.appendChild(d);const p=d.getBoundingClientRect();if(d.remove(),c.top===p.top)return[i];const m=[];m.push(new DOMRect(c.left,c.top,i.right-c.left,c.bottom-c.top));const f=p.top-c.bottom;return f>=10&&m.push(new DOMRect(i.left,c.bottom,i.width,f)),m.push(new DOMRect(i.left,p.top,p.right-i.left,p.bottom-p.top)),m}},88128:e=>{var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},89575:(e,t,n)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},a.apply(this,arguments)}n.d(t,{A:()=>a})},93051:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},93757:(e,t,n)=>{n.r(t),n.d(t,{getChatCommand:()=>i,setChatCommand:()=>r});var a=n(77019);let o=null;function r(e){o=e}function i(){return o}customElements.define("ai-portal.set-chat-command",(0,a.createProviderClass)(r))},94669:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>se,ChatBoxComponent:()=>ie});var a,o=n(74635),r=n(70918),i=n(24586),s=n(26902),l=n(5536),c=n(86121),u=n(70829),d=n(62740),p=n(18769),m=n.n(p),f=n(59435),h=n(90870),g=n(30981),v=n(78404),b=n(86572),x=n(92879),y=(n(34419),n(52616)),w=n(16195),k=n(47008),A=n(93757),C=n(57227),E=n(45387),S=n(51020),M=n(17753),I=n(45889),T=n(21020);let _,N,O,R,F,P,$,L,W,D,B,j,K,U,z,H,V,G,Y,q,J,Q,X,Z,ee,te;(0,y.initializeI18n)(w.NS,w.I);const{defineElement:ne,property:ae,event:oe,method:re}=(0,h.createDecorators)(),ie=(0,p.forwardRef)(ke);let se;var le=new WeakMap,ce=new WeakMap,ue=new WeakMap,de=new WeakMap,pe=new WeakMap,me=new WeakMap,fe=new WeakMap,he=new WeakSet,ge=new WeakMap,ve=new WeakMap,be=new WeakMap,xe=new WeakMap,ye=new WeakMap;class we extends g.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,he),(0,i.A)(this,"ref",(_(this),(0,p.createRef)())),(0,r.A)(this,le,O(this)),(0,r.A)(this,ce,(R(this),F(this))),(0,r.A)(this,ue,(P(this),$(this))),(0,r.A)(this,de,(L(this),W(this))),(0,r.A)(this,pe,(D(this),B(this))),(0,r.A)(this,me,(j(this),K(this))),(0,r.A)(this,fe,(U(this),z(this))),(0,r.A)(this,ge,(G(this),e=>{(0,l.A)(he,this,H).emit(e)})),(0,r.A)(this,ve,Y(this)),(0,r.A)(this,be,(Q(this),e=>{(0,l.A)(he,this,q).emit(e)})),(0,r.A)(this,xe,X(this)),(0,r.A)(this,ye,(te(this),e=>{(0,l.A)(he,this,Z).emit(e)}))}get disabled(){return(0,u.A)(le,this)}set disabled(e){(0,c.A)(le,this,e)}get placeholder(){return(0,u.A)(ce,this)}set placeholder(e){(0,c.A)(ce,this,e)}get autoFocus(){return(0,u.A)(ue,this)}set autoFocus(e){(0,c.A)(ue,this,e)}get aiEmployees(){return(0,u.A)(de,this)}set aiEmployees(e){(0,c.A)(de,this,e)}get commands(){return(0,u.A)(pe,this)}set commands(e){(0,c.A)(pe,this,e)}get uploadOptions(){return(0,u.A)(me,this)}set uploadOptions(e){(0,c.A)(me,this,e)}setValue(e){var t;null===(t=this.ref.current)||void 0===t||t.setValue(e)}getValue(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.getValue()}focusOnInput(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.focusOnInput()}render(){return m().createElement(ie,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,aiEmployees:this.aiEmployees,commands:this.commands,uploadOptions:this.uploadOptions,onMessageSubmit:(0,u.A)(ge,this),onChatSubmit:(0,u.A)(be,this),onCommandSelect:(0,u.A)(ye,this),ref:this.ref})}}function ke(e,t){let{disabled:n,placeholder:a,autoFocus:o,aiEmployees:r,commands:i,uploadOptions:s,onMessageSubmit:l,onChatSubmit:c,onCommandSelect:u}=e;const d=(0,p.useRef)(null),h=(0,p.useRef)(null),[g,y]=(0,p.useState)(""),k=(0,p.useRef)(""),[S,_]=(0,p.useState)(null),[N,O]=(0,p.useState)(null),[R,F]=(0,p.useState)(""),[P,$]=(0,p.useState)(0),[L,W]=(0,p.useState)([0]),[D,B]=(0,p.useState)(null),[j,K]=(0,p.useState)(null),[U,z]=(0,p.useState)(null),[H,V]=(0,p.useState)(null),[G,Y]=(0,p.useState)(""),q=(0,p.useRef)(null),J=null==s?void 0:s.enabled,Q=null==s?void 0:s.accept,{files:X,resetFiles:Z,appendFiles:ee,removeFile:te,hasFiles:ne,allFilesDone:ae,fileInfos:oe,exceeded:re,paste:ie}=(0,I.O)(s);(0,p.useEffect)((()=>{J||Z()}),[J,Z]),(0,p.useEffect)((()=>{const e=window.__elevo_try_it_out;e&&delete window.__elevo_try_it_out,"string"==typeof(null==e?void 0:e.content)&&(k.current=e.content,y(e.content))}),[]),(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{k.current=e,y(e)},getValue:()=>k.current,focusOnInput:()=>{var e;null===(e=h.current)||void 0===e||e.focus()}})));const se=(0,p.useCallback)((e=>{const t=e.slice(G.length||R.length);l(t),c({content:t,files:oe,cmd:D,aiEmployeeId:j})}),[G.length,R.length,D,oe,j,c,l]),le=(0,p.useCallback)((e=>{e.currentTarget.value&&ae&&se(e.currentTarget.value)}),[se,ae]),ce=(0,p.useCallback)((e=>{const{value:t,selectionStart:n,selectionEnd:a}=e.target;if(k.current=t,y(t),null!==n&&n===a&&null!=r&&r.length){const a=t.slice(0,n);if(a.startsWith("@")){const t=a.slice(1).toLowerCase(),o=r.filter((e=>e.employeeId.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,v.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return _({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:o.map((e=>({key:e.employeeId,text:e.name,data:e})))}),void $(0)}}}if(_(null),null!==n&&n===a&&null!=i&&i.length){const a=t.slice(0,n);if(a.startsWith("/")){const t=a.slice(1).toLowerCase(),o=i.filter((e=>e.label.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,v.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return z({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:o.map((e=>({key:e.value,text:e.label,data:e,ancestors:[],items:Ae(e,[]),payload:e.payload})))}),void W([0])}}}z(null)}),[r,i]);(0,p.useEffect)((()=>{R&&!g.includes(R)&&(F(""),K(null))}),[R,g]),(0,p.useEffect)((()=>{G&&!g.includes(G)&&(Y(""),B(null),u(null))}),[G,u,g]);const ue=(0,p.useCallback)((()=>{se(k.current)}),[se]);(0,p.useEffect)((()=>{o&&Promise.resolve().then((()=>{var e;null===(e=h.current)||void 0===e||e.focus()}))}),[]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(!R||!t)return void O(null);const n=(0,b.I)(t,"",R.slice(0,-1));O(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[R,ne]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(!G||!t)return void V(null);const n=(0,b.I)(t,"",G.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[G,ne]);const de=(0,p.useMemo)((()=>{const e=(0,A.getChatCommand)();return e&&(0,A.setChatCommand)(null),e}),[]);(0,p.useEffect)((()=>{de&&(B(de.payload),u(de.payload))}),[de,u]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(de&&t){const e=`/${de.command} `,n=(0,b.I)(t,"",e.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4})))),k.current=e,q.current={start:e.length,end:e.length},y(e),Y(e)}}),[de]);const pe=(0,p.useCallback)((e=>{var t;const n=`@${e.text} `,a=`${k.current.slice(0,S.range.start)}${n}`,o=`${a}${k.current.slice(S.range.end)}`;k.current=o,q.current={start:a.length,end:a.length},y(o),F(n),_(null),K(e.data.employeeId),null===(t=h.current)||void 0===t||t.focus()}),[S]),me=(0,p.useCallback)((e=>{var t;const n=`/${[...e.ancestors.map((e=>e.label)),e.text].join(": ")} `,a=`${k.current.slice(0,U.range.start)}${n}`,o=`${a}${k.current.slice(U.range.end)}`;k.current=o,q.current={start:a.length,end:a.length},y(o),Y(n),z(null),B(e.payload),u(e.payload),null===(t=h.current)||void 0===t||t.focus()}),[U,u]),fe=(0,p.useCallback)((e=>{switch(e.key){case"Escape":if(!S&&!U)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),_(null),z(null),!1;case"ArrowUp":case"ArrowDown":if(!S&&!U)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),S?$((t=>{const n=t+("ArrowUp"===e.key?-1:1),a=S.actions.length;return(a+n)%a})):W((t=>{let n=0,{actions:a}=U;const o=[];for(;n<t.length-1;){const e=a[t[n]];if(!Ce(e))break;a=e.items,o.push(t[n]),n+=1}const r=t[n]+("ArrowUp"===e.key?-1:1),i=a.length,s=(i+r)%i;return o.push(s),o})),!1;case"Enter":case"ArrowLeft":case"ArrowRight":if(S){if("Enter"===e.key)return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),pe(S.actions[P]),!1}else if(U){if(e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),"ArrowLeft"===e.key)return L.length>1&&W((e=>e.slice(0,-1))),!1;let t,n=0,{actions:a}=U;for(;n<L.length&&(t=a[L[n]],Ce(t));)a=t.items,n+=1;return t&&(Ce(t)?W((e=>[...e,0])):"Enter"===e.key&&me(t)),!1}break;case"Delete":case"Backspace":{const t=[{textLength:R.length,prefixLength:0},{textLength:G.length,prefixLength:0}];for(const{textLength:n,prefixLength:a}of t)if(n){let{selectionStart:t,selectionEnd:o}=e.currentTarget;t===o&&("Backspace"===e.key?t-=1:o+=1);const r=a,i=r+n;if(t<i&&o>r){const n=Math.min(t,r),a=Math.max(o,i),s=`${k.current.slice(0,n)}${k.current.slice(a)}`;return k.current=s,q.current={start:n,end:n},y(s),e.preventDefault(),e.stopPropagation(),!1}}break}}}),[P,L,U,G.length,pe,me,S,R.length]),he=(0,p.useMemo)((()=>{if(!U)return[];let e=U.actions;const t=[];for(let n=0;n<L.length;n+=1){const a=e[L[n]];if(!a)break;if(!Ce(a)){t.push(a.key);break}t.push(a.key),e=a.items}return t}),[L,U]),ge=(0,p.useRef)(null),ve=(0,p.useCallback)((e=>{var t;ee(e),null===(t=h.current)||void 0===t||t.focus()}),[ee]),be=!g||!ae||!!R&&g.length<=R.length||!!G&&g.length<=G.length;return m().createElement(m().Fragment,null,m().createElement("div",{className:"root"},m().createElement("div",{className:"container",ref:d},m().createElement(x.e,{containerRef:d,ref:h,value:g,minRows:58/22,paddingSize:ne?144:60,autoResize:!0,disabled:n,placeholder:null!=a?a:(0,w.t)(w.K.ASK_ANY_THING),submitWhen:"enter-without-shift",desiredSelectionRef:q,onSubmit:le,onChange:ce,onKeyDown:fe,onPaste:ie,style:{paddingTop:ne?94:10}}),ne&&m().createElement(E.C,{files:X,onRemove:(e,t)=>{te(e),null==t||t.abort()},onAdd:()=>{var e;null===(e=ge.current)||void 0===e||e.requestUpload()}}),m().createElement("div",{className:"actions-bar"},m().createElement("div",null,m().createElement("slot",{name:"actions"})),m().createElement("div",{className:"buttons"},J?m().createElement(m().Fragment,null,m().createElement(C.s,{ref:ge,accept:Q,disabled:re,onChange:e=>{var t;ee(e),null===(t=h.current)||void 0===t||t.focus()}}),m().createElement("div",{className:"btn-divider"})):null,m().createElement("button",{className:"btn-send",disabled:be,onClick:ue},m().createElement(M.Bj,{lib:"fa",prefix:"fas",icon:"arrow-up"})))),null==N?void 0:N.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),null==H?void 0:H.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),S&&(0,f.createPortal)(m().createElement(M.Tl,{actions:S.actions,style:S.style,activeKeys:[S.actions[P].key],onActionClick:e=>pe(e.detail)}),document.body),U&&(0,f.createPortal)(m().createElement(M.Tl,{actions:U.actions,style:U.style,activeKeys:he,onActionClick:e=>me(e.detail)}),document.body))),m().createElement(T.A,{disabled:!J||re,accept:Q,dragTips:null==s?void 0:s.dragTips,onFilesDropped:ve}))}function Ae(e,t){var n;return null===(n=e.options)||void 0===n?void 0:n.map((n=>{const a=[...t,e];return{key:n.value,text:n.label,data:n,ancestors:a,items:Ae(n,a),payload:n.payload}}))}function Ce(e){var t;return!(null===(t=e.items)||void 0===t||!t.length)}a=we,({e:[O,R,F,P,$,L,W,D,B,j,K,U,z,H,V,G,Y,q,J,Q,X,Z,ee,te,_],c:[se,N]}=(0,d.A)(a,[ne("ai-portal.chat-box",{styleTexts:[k.A,S.A],shadowOptions:{delegatesFocus:!0}})],[[ae({type:Boolean}),1,"disabled"],[ae(),1,"placeholder"],[ae({type:Boolean}),1,"autoFocus"],[ae({attribute:!1}),1,"aiEmployees"],[ae({attribute:!1}),1,"commands"],[ae({attribute:!1}),1,"uploadOptions"],[oe({type:"message.submit"}),1,"messageSubmit",e=>(0,u.A)(fe,e),(e,t)=>(0,c.A)(fe,e,t)],[oe({type:"chat.submit"}),1,"chatSubmit",e=>(0,u.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[oe({type:"command.select"}),1,"commandSelect",e=>(0,u.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)],[re(),2,"setValue"],[re(),2,"getValue"],[re(),2,"focusOnInput"]],0,(e=>ye.has((0,s.A)(e))),g.ReactNextElement)),N()}}]);
2
- //# sourceMappingURL=chat-box.041da849.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[5944,6573],{1740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,o&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var r=n.sourceMap;r&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},16195:(e,t,n)=>{n.d(t,{I:()=>l,K:()=>o,NS:()=>s,t:()=>c});var a=n(52616);let o=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const r={[o.ASK_ANY_THING]:"Ask anything",[o.COMMON_TASKS]:"Common tasks"},i={[o.ASK_ANY_THING]:"询问任何问题",[o.COMMON_TASKS]:"常用任务"},s="bricks/ai-portal/chat-box",l={en:r,zh:i},c=a.i18n.getFixedT(null,s)},17753:(e,t,n)=>{n.d(t,{Bj:()=>o,Tl:()=>r});var a=n(30981);const o=(0,a.wrapBrick)("eo-icon"),r=(0,a.wrapBrick)("eo-actions",{onActionClick:"action.click",onItemDragEnd:"item.drag.end",onItemDragStart:"item.drag.start"});(0,a.wrapBrick)("ai-portal.icon-button")},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},24586:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(11369);function o(e,t,n){return(t=(0,a.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},30855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},47008:(e,t,n)=>{n.d(t,{A:()=>p});var a=n(36758),o=n.n(a),r=n(40935),i=n.n(r),s=n(20062),l=n.n(s),c=new URL(n(47336),n.b),u=i()(o()),d=l()(c);u.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${d}) 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)}`,""]);const p=u.toString()},47336:(e,t,n)=>{e.exports=n.p+"images/25c20165.png"},60136:(e,t,n)=>{n.d(t,{v7:()=>d,NL:()=>p,xf:()=>m});var a=n(61919);const o=n.p+"images/62542537.png",r=n.p+"images/94d7a053.png",i=n.p+"images/0e7e6764.png",s=n.p+"images/7944ebaf.png",l=n.p+"images/c7ec12fe.png",c=n.p+"images/3316492a.png",u=new Map([["md","text/markdown"],["pdf","application/pdf"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["txt","text/plain"],["csv","text/csv"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["png","image/png"],["gif","image/gif"],["bmp","image/bmp"],["webp","image/webp"],["svg","image/svg+xml"]]);function d(e){const[t,n]=a.pipes.unitFormat(e,"bytes",1),o=+t;return`${o>100?Math.round(o):o} ${n}`}function p(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",c];switch(n){case"text/markdown":case"text/x-markdown":return["Markdown",o];case"application/pdf":return["PDF",r];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",i];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",l];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",s]}return n.startsWith("text/")?["Text",o]:["File",c]}function m(e){var t;let n="";const a=null==e?void 0:e.match(/\.([^.]+)$/);return a&&(n=a[1].toLowerCase()),null!==(t=u.get(n))&&void 0!==t?t:"unknown"}},72591:e=>{var t=[];function n(e){for(var n=-1,a=0;a<t.length;a++)if(t[a].identifier===e){n=a;break}return n}function a(e,a){for(var r={},i=[],s=0;s<e.length;s++){var l=e[s],c=a.base?l[0]+a.base:l[0],u=r[c]||0,d="".concat(c," ").concat(u);r[c]=u+1;var p=n(d),m={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)t[p].references++,t[p].updater(m);else{var f=o(m,a);a.byIndex=s,t.splice(s,0,{identifier:d,updater:f,references:1})}i.push(d)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var r=a(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<r.length;i++){var s=n(r[i]);t[s].references--}for(var l=a(e,o),c=0;c<r.length;c++){var u=n(r[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}r=l}}},73656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},78404:(e,t,n)=>{n.d(t,{U:()=>r});var a=n(80592);let o;function r(e,t){o||(o=document.createElement("div"),o.setAttribute("tab-index","-1"),o.setAttribute("aria-hidden","true"),document.body.appendChild(o)),o.setAttribute("style",(0,a.w)(e)),o.textContent=e.value.slice(0,t);const n=document.createElement("span");n.textContent="​",o.appendChild(n);const r=n.getBoundingClientRect();return n.remove(),{top:r.top,left:r.left}}},86572:(e,t,n)=>{n.d(t,{I:()=>r});var a=n(80592);let o;function r(e,t,n){o||(o=document.createElement("div"),o.setAttribute("tab-index","-1"),o.setAttribute("aria-hidden","true"),document.body.appendChild(o)),o.setAttribute("style",(0,a.w)(e)),o.textContent=t;const r=document.createElement("span");r.textContent=n,o.appendChild(r);const i=r.getBoundingClientRect();if(r.remove(),n.length<=1)return[i];const s=n[0],l=document.createElement("span");l.textContent=s,o.appendChild(l);const c=l.getBoundingClientRect();l.remove(),o.textContent=`${t}${n.slice(0,-1)}`;const u=n[n.length-1],d=document.createElement("span");d.textContent=u,o.appendChild(d);const p=d.getBoundingClientRect();if(d.remove(),c.top===p.top)return[i];const m=[];m.push(new DOMRect(c.left,c.top,i.right-c.left,c.bottom-c.top));const f=p.top-c.bottom;return f>=10&&m.push(new DOMRect(i.left,c.bottom,i.width,f)),m.push(new DOMRect(i.left,p.top,p.right-i.left,p.bottom-p.top)),m}},88128:e=>{var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},89575:(e,t,n)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},a.apply(this,arguments)}n.d(t,{A:()=>a})},93051:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},93757:(e,t,n)=>{n.r(t),n.d(t,{getChatCommand:()=>i,setChatCommand:()=>r});var a=n(77019);let o=null;function r(e){o=e}function i(){return o}customElements.define("ai-portal.set-chat-command",(0,a.createProviderClass)(r))},94669:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>se,ChatBoxComponent:()=>ie});var a,o=n(74635),r=n(70918),i=n(24586),s=n(26902),l=n(5536),c=n(86121),u=n(70829),d=n(62740),p=n(18769),m=n.n(p),f=n(59435),h=n(90870),g=n(30981),v=n(78404),b=n(86572),x=n(92879),y=(n(34419),n(52616)),w=n(16195),k=n(47008),A=n(93757),C=n(57227),E=n(45387),S=n(51020),M=n(17753),I=n(45889),_=n(21020);let T,N,O,R,F,P,$,L,W,D,B,j,K,U,z,H,V,G,Y,q,J,Q,X,Z,ee,te;(0,y.initializeI18n)(w.NS,w.I);const{defineElement:ne,property:ae,event:oe,method:re}=(0,h.createDecorators)(),ie=(0,p.forwardRef)(ke);let se;var le=new WeakMap,ce=new WeakMap,ue=new WeakMap,de=new WeakMap,pe=new WeakMap,me=new WeakMap,fe=new WeakMap,he=new WeakSet,ge=new WeakMap,ve=new WeakMap,be=new WeakMap,xe=new WeakMap,ye=new WeakMap;class we extends g.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,he),(0,i.A)(this,"ref",(T(this),(0,p.createRef)())),(0,r.A)(this,le,O(this)),(0,r.A)(this,ce,(R(this),F(this))),(0,r.A)(this,ue,(P(this),$(this))),(0,r.A)(this,de,(L(this),W(this))),(0,r.A)(this,pe,(D(this),B(this))),(0,r.A)(this,me,(j(this),K(this))),(0,r.A)(this,fe,(U(this),z(this))),(0,r.A)(this,ge,(G(this),e=>{(0,l.A)(he,this,H).emit(e)})),(0,r.A)(this,ve,Y(this)),(0,r.A)(this,be,(Q(this),e=>{(0,l.A)(he,this,q).emit(e)})),(0,r.A)(this,xe,X(this)),(0,r.A)(this,ye,(te(this),e=>{(0,l.A)(he,this,Z).emit(e)}))}get disabled(){return(0,u.A)(le,this)}set disabled(e){(0,c.A)(le,this,e)}get placeholder(){return(0,u.A)(ce,this)}set placeholder(e){(0,c.A)(ce,this,e)}get autoFocus(){return(0,u.A)(ue,this)}set autoFocus(e){(0,c.A)(ue,this,e)}get aiEmployees(){return(0,u.A)(de,this)}set aiEmployees(e){(0,c.A)(de,this,e)}get commands(){return(0,u.A)(pe,this)}set commands(e){(0,c.A)(pe,this,e)}get uploadOptions(){return(0,u.A)(me,this)}set uploadOptions(e){(0,c.A)(me,this,e)}setValue(e){var t;null===(t=this.ref.current)||void 0===t||t.setValue(e)}getValue(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.getValue()}focusOnInput(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.focusOnInput()}render(){return m().createElement(ie,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,aiEmployees:this.aiEmployees,commands:this.commands,uploadOptions:this.uploadOptions,onMessageSubmit:(0,u.A)(ge,this),onChatSubmit:(0,u.A)(be,this),onCommandSelect:(0,u.A)(ye,this),ref:this.ref})}}function ke(e,t){let{disabled:n,placeholder:a,autoFocus:o,aiEmployees:r,commands:i,uploadOptions:s,onMessageSubmit:l,onChatSubmit:c,onCommandSelect:u}=e;const d=(0,p.useRef)(null),h=(0,p.useRef)(null),[g,y]=(0,p.useState)(""),k=(0,p.useRef)(""),[S,T]=(0,p.useState)(null),[N,O]=(0,p.useState)(null),[R,F]=(0,p.useState)(""),[P,$]=(0,p.useState)(0),[L,W]=(0,p.useState)([0]),[D,B]=(0,p.useState)(null),[j,K]=(0,p.useState)(null),[U,z]=(0,p.useState)(null),[H,V]=(0,p.useState)(null),[G,Y]=(0,p.useState)(""),q=(0,p.useRef)(null),J=null==s?void 0:s.enabled,Q=null==s?void 0:s.accept,{files:X,resetFiles:Z,appendFiles:ee,removeFile:te,hasFiles:ne,allFilesDone:ae,fileInfos:oe,exceeded:re,paste:ie}=(0,I.O)(s);(0,p.useEffect)((()=>{J||Z()}),[J,Z]),(0,p.useEffect)((()=>{const e=window.__elevo_try_it_out;e&&delete window.__elevo_try_it_out,"string"==typeof(null==e?void 0:e.content)&&(k.current=e.content,y(e.content))}),[]),(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{k.current=e,y(e)},getValue:()=>k.current,focusOnInput:()=>{var e;null===(e=h.current)||void 0===e||e.focus()}})));const se=(0,p.useCallback)((e=>{const t=e.slice(G.length||R.length);l(t),c({content:t,files:oe,cmd:D,aiEmployeeId:j})}),[G.length,R.length,D,oe,j,c,l]),le=(0,p.useCallback)((e=>{e.currentTarget.value&&ae&&se(e.currentTarget.value)}),[se,ae]),ce=(0,p.useCallback)((e=>{const{value:t,selectionStart:n,selectionEnd:a}=e.target;if(k.current=t,y(t),null!==n&&n===a&&null!=r&&r.length){const a=t.slice(0,n);if(a.startsWith("@")){const t=a.slice(1).toLowerCase(),o=r.filter((e=>e.employeeId.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,v.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return T({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:o.map((e=>({key:e.employeeId,text:e.name,data:e})))}),void $(0)}}}if(T(null),null!==n&&n===a&&null!=i&&i.length){const a=t.slice(0,n);if(a.startsWith("/")){const t=a.slice(1).toLowerCase(),o=i.filter((e=>e.label.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,v.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return z({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:o.map((e=>({key:e.value,text:e.label,data:e,ancestors:[],items:Ae(e,[]),payload:e.payload})))}),void W([0])}}}z(null)}),[r,i]);(0,p.useEffect)((()=>{R&&!g.includes(R)&&(F(""),K(null))}),[R,g]),(0,p.useEffect)((()=>{G&&!g.includes(G)&&(Y(""),B(null),u(null))}),[G,u,g]);const ue=(0,p.useCallback)((()=>{se(k.current)}),[se]);(0,p.useEffect)((()=>{o&&Promise.resolve().then((()=>{var e;null===(e=h.current)||void 0===e||e.focus()}))}),[]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(!R||!t)return void O(null);const n=(0,b.I)(t,"",R.slice(0,-1));O(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[R,ne]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(!G||!t)return void V(null);const n=(0,b.I)(t,"",G.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[G,ne]);const de=(0,p.useMemo)((()=>{const e=(0,A.getChatCommand)();return e&&(0,A.setChatCommand)(null),e}),[]);(0,p.useEffect)((()=>{de&&(B(de.payload),u(de.payload))}),[de,u]),(0,p.useEffect)((()=>{var e;const t=null===(e=h.current)||void 0===e?void 0:e.element;if(de&&t){const e=`/${de.command} `,n=(0,b.I)(t,"",e.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4})))),k.current=e,q.current={start:e.length,end:e.length},y(e),Y(e)}}),[de]);const pe=(0,p.useCallback)((e=>{var t;const n=`@${e.text} `,a=`${k.current.slice(0,S.range.start)}${n}`,o=`${a}${k.current.slice(S.range.end)}`;k.current=o,q.current={start:a.length,end:a.length},y(o),F(n),T(null),K(e.data.employeeId),null===(t=h.current)||void 0===t||t.focus()}),[S]),me=(0,p.useCallback)((e=>{var t;const n=`/${[...e.ancestors.map((e=>e.label)),e.text].join(": ")} `,a=`${k.current.slice(0,U.range.start)}${n}`,o=`${a}${k.current.slice(U.range.end)}`;k.current=o,q.current={start:a.length,end:a.length},y(o),Y(n),z(null),B(e.payload),u(e.payload),null===(t=h.current)||void 0===t||t.focus()}),[U,u]),fe=(0,p.useCallback)((e=>{switch(e.key){case"Escape":if(!S&&!U)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),T(null),z(null),!1;case"ArrowUp":case"ArrowDown":if(!S&&!U)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),S?$((t=>{const n=t+("ArrowUp"===e.key?-1:1),a=S.actions.length;return(a+n)%a})):W((t=>{let n=0,{actions:a}=U;const o=[];for(;n<t.length-1;){const e=a[t[n]];if(!Ce(e))break;a=e.items,o.push(t[n]),n+=1}const r=t[n]+("ArrowUp"===e.key?-1:1),i=a.length,s=(i+r)%i;return o.push(s),o})),!1;case"Enter":case"ArrowLeft":case"ArrowRight":if(S){if("Enter"===e.key)return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),pe(S.actions[P]),!1}else if(U){if(e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),"ArrowLeft"===e.key)return L.length>1&&W((e=>e.slice(0,-1))),!1;let t,n=0,{actions:a}=U;for(;n<L.length&&(t=a[L[n]],Ce(t));)a=t.items,n+=1;return t&&(Ce(t)?W((e=>[...e,0])):"Enter"===e.key&&me(t)),!1}break;case"Delete":case"Backspace":{const t=[{textLength:R.length,prefixLength:0},{textLength:G.length,prefixLength:0}];for(const{textLength:n,prefixLength:a}of t)if(n){let{selectionStart:t,selectionEnd:o}=e.currentTarget;t===o&&("Backspace"===e.key?t-=1:o+=1);const r=a,i=r+n;if(t<i&&o>r){const n=Math.min(t,r),a=Math.max(o,i),s=`${k.current.slice(0,n)}${k.current.slice(a)}`;return k.current=s,q.current={start:n,end:n},y(s),e.preventDefault(),e.stopPropagation(),!1}}break}}}),[P,L,U,G.length,pe,me,S,R.length]),he=(0,p.useMemo)((()=>{if(!U)return[];let e=U.actions;const t=[];for(let n=0;n<L.length;n+=1){const a=e[L[n]];if(!a)break;if(!Ce(a)){t.push(a.key);break}t.push(a.key),e=a.items}return t}),[L,U]),ge=(0,p.useRef)(null),ve=(0,p.useCallback)((e=>{var t;ee(e),null===(t=h.current)||void 0===t||t.focus()}),[ee]),be=!g||!ae||!!R&&g.length<=R.length||!!G&&g.length<=G.length;return m().createElement(m().Fragment,null,m().createElement("div",{className:"root"},m().createElement("div",{className:"container",ref:d},m().createElement(x.e,{containerRef:d,ref:h,value:g,minRows:58/22,paddingSize:ne?144:60,autoResize:!0,disabled:n,placeholder:null!=a?a:(0,w.t)(w.K.ASK_ANY_THING),submitWhen:"enter-without-shift",desiredSelectionRef:q,onSubmit:le,onChange:ce,onKeyDown:fe,onPaste:ie,style:{paddingTop:ne?94:10}}),ne&&m().createElement(E.C,{files:X,onRemove:(e,t)=>{te(e),null==t||t.abort()},onAdd:()=>{var e;null===(e=ge.current)||void 0===e||e.requestUpload()}}),m().createElement("div",{className:"actions-bar"},m().createElement("div",null,m().createElement("slot",{name:"actions"})),m().createElement("div",{className:"buttons"},J?m().createElement(m().Fragment,null,m().createElement(C.s,{ref:ge,accept:Q,disabled:re,onChange:e=>{var t;ee(e),null===(t=h.current)||void 0===t||t.focus()}}),m().createElement("div",{className:"btn-divider"})):null,m().createElement("button",{className:"btn-send",disabled:be,onClick:ue},m().createElement(M.Bj,{lib:"fa",prefix:"fas",icon:"arrow-up"})))),null==N?void 0:N.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),null==H?void 0:H.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),S&&(0,f.createPortal)(m().createElement(M.Tl,{actions:S.actions,style:S.style,activeKeys:[S.actions[P].key],onActionClick:e=>pe(e.detail)}),document.body),U&&(0,f.createPortal)(m().createElement(M.Tl,{actions:U.actions,style:U.style,activeKeys:he,onActionClick:e=>me(e.detail)}),document.body))),m().createElement(_.A,{disabled:!J||re,uploadOptions:s,onFilesDropped:ve}))}function Ae(e,t){var n;return null===(n=e.options)||void 0===n?void 0:n.map((n=>{const a=[...t,e];return{key:n.value,text:n.label,data:n,ancestors:a,items:Ae(n,a),payload:n.payload}}))}function Ce(e){var t;return!(null===(t=e.items)||void 0===t||!t.length)}a=we,({e:[O,R,F,P,$,L,W,D,B,j,K,U,z,H,V,G,Y,q,J,Q,X,Z,ee,te,T],c:[se,N]}=(0,d.A)(a,[ne("ai-portal.chat-box",{styleTexts:[k.A,S.A],shadowOptions:{delegatesFocus:!0}})],[[ae({type:Boolean}),1,"disabled"],[ae(),1,"placeholder"],[ae({type:Boolean}),1,"autoFocus"],[ae({attribute:!1}),1,"aiEmployees"],[ae({attribute:!1}),1,"commands"],[ae({attribute:!1}),1,"uploadOptions"],[oe({type:"message.submit"}),1,"messageSubmit",e=>(0,u.A)(fe,e),(e,t)=>(0,c.A)(fe,e,t)],[oe({type:"chat.submit"}),1,"chatSubmit",e=>(0,u.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[oe({type:"command.select"}),1,"commandSelect",e=>(0,u.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)],[re(),2,"setValue"],[re(),2,"getValue"],[re(),2,"focusOnInput"]],0,(e=>ye.has((0,s.A)(e))),g.ReactNextElement)),N()}}]);
2
+ //# sourceMappingURL=chat-box.6eab985e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/chat-box.6eab985e.js","mappings":"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","sources":["webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/bricks.ts","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/cruise-canvas/utils/file.ts","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectsInTextarea.ts","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///./src/data-providers/set-chat-command.ts","webpack:///./src/chat-box/index.tsx"],"sourcesContent":["\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { 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)[] },\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","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","// 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","import { pipes } from \"@easyops-cn/brick-next-pipes\";\nimport fileText from \"../images/file-text@2x.png\";\nimport filePdf from \"../images/file-pdf@2x.png\";\nimport fileDoc from \"../images/file-doc@2x.png\";\nimport filePpt from \"../images/file-ppt@2x.png\";\nimport fileXls from \"../images/file-xls@2x.png\";\nimport fileOther from \"../images/file-other@2x.png\";\n\nconst MIME_TYPES = new Map<string, string>([\n [\"md\", \"text/markdown\"],\n [\"pdf\", \"application/pdf\"],\n [\"doc\", \"application/msword\"],\n [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n [\"txt\", \"text/plain\"],\n [\"csv\", \"text/csv\"],\n [\"xls\", \"application/vnd.ms-excel\"],\n [\"xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n [\"ppt\", \"application/vnd.ms-powerpoint\"],\n [\n \"pptx\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n ],\n [\"jpg\", \"image/jpeg\"],\n [\"jpeg\", \"image/jpeg\"],\n [\"png\", \"image/png\"],\n [\"gif\", \"image/gif\"],\n [\"bmp\", \"image/bmp\"],\n [\"webp\", \"image/webp\"],\n [\"svg\", \"image/svg+xml\"],\n]);\n\nexport function formatFileSize(size: number) {\n const [value, unit] = pipes.unitFormat(size, \"bytes\", 1);\n const number = +value;\n return `${number > 100 ? Math.round(number) : number} ${unit}`;\n}\n\nexport function getFileTypeAndIcon(\n mimeType: string | undefined,\n filename: string | undefined\n): [type: string, icon: string] {\n const type = mimeType || getMimeTypeByFilename(filename);\n\n if (type.startsWith(\"image/\")) {\n return [\"Image\", fileOther];\n }\n\n switch (type) {\n case \"text/markdown\":\n case \"text/x-markdown\":\n return [\"Markdown\", fileText];\n case \"application/pdf\":\n return [\"PDF\", filePdf];\n case \"application/msword\":\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\n return [\"Word\", fileDoc];\n case \"application/vnd.ms-excel\":\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n return [\"Excel\", fileXls];\n case \"application/vnd.ms-powerpoint\":\n case \"application/vnd.openxmlformats-officedocument.presentationml.presentation\":\n return [\"PowerPoint\", filePpt];\n }\n\n if (type.startsWith(\"text/\")) {\n return [\"Text\", fileText];\n }\n\n return [\"File\", fileOther];\n}\n\nexport function getMimeTypeByFilename(filename: string | undefined): string {\n let ext = \"\";\n const matches = filename?.match(/\\.([^.]+)$/);\n if (matches) {\n ext = matches[1].toLowerCase();\n }\n return MIME_TYPES.get(ext) ?? \"unknown\";\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getCaretPositionInTextarea(\n textarea: HTMLTextAreaElement,\n index: number\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n hiddenElement.textContent = textarea.value.slice(0, index);\n\n const span = document.createElement(\"span\");\n span.textContent = \"\\u200b\"; // 占位符\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectsInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n): DOMRect[] {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const fullRect = span.getBoundingClientRect();\n span.remove();\n\n if (measureContent.length <= 1) {\n return [fullRect];\n }\n\n const leadingChar = measureContent[0];\n const leadingSpan = document.createElement(\"span\");\n leadingSpan.textContent = leadingChar;\n hiddenElement.appendChild(leadingSpan);\n const leadingRect = leadingSpan.getBoundingClientRect();\n leadingSpan.remove();\n\n hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;\n const trailingChar = measureContent[measureContent.length - 1];\n const trailingSpan = document.createElement(\"span\");\n trailingSpan.textContent = trailingChar;\n hiddenElement.appendChild(trailingSpan);\n const trailingRect = trailingSpan.getBoundingClientRect();\n trailingSpan.remove();\n\n if (leadingRect.top === trailingRect.top) {\n return [fullRect];\n }\n\n const rects: DOMRect[] = [];\n\n // Leading rect\n rects.push(\n new DOMRect(\n leadingRect.left,\n leadingRect.top,\n fullRect.right - leadingRect.left,\n leadingRect.bottom - leadingRect.top\n )\n );\n\n // Middle rect\n const height = trailingRect.top - leadingRect.bottom;\n if (height >= 10) {\n rects.push(\n new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height)\n );\n }\n\n // Trailing rect\n rects.push(\n new DOMRect(\n fullRect.left,\n trailingRect.top,\n trailingRect.right - fullRect.left,\n trailingRect.bottom - trailingRect.top\n )\n );\n\n return rects;\n}\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","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 React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectsInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { SimpleAction, SubMenuAction } from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n getChatCommand,\n setChatCommand,\n} from \"../data-providers/set-chat-command.js\";\nimport type {\n ChatPayload,\n CommandPayload,\n UploadOptions,\n} from \"../shared/interfaces.js\";\nimport {\n UploadButton,\n type UploadButtonRef,\n} from \"../shared/FileUpload/UploadButton.js\";\nimport { UploadedFiles } from \"../shared/FileUpload/UploadedFiles.js\";\nimport UploadedFilesStyleText from \"../shared/FileUpload/UploadedFiles.shadow.css\";\nimport { WrappedActions, WrappedIcon } from \"./bricks.js\";\nimport { useFilesUploading } from \"../shared/useFilesUploading.js\";\nimport GlobalDragOverlay from \"../shared/FileUpload/GlobalDragOverlay.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n commands?: Command[];\n uploadOptions?: UploadOptions;\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n focusOnInput: () => void;\n}\n\nexport interface Command {\n label: string;\n value: string;\n options?: Command[];\n payload?: CommandPayload;\n}\n\ntype ActionWithAncestors = SimpleAction & {\n key: string | number;\n ancestors?: Command[];\n items?: ActionWithAncestors[];\n payload?: CommandPayload;\n};\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText, UploadedFilesStyleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\n */\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\n };\n\n @event({ type: \"command.select\" })\n accessor #commandSelect!: EventEmitter<CommandPayload | null>;\n\n #handleCommandSelect = (command: CommandPayload | null) => {\n this.#commandSelect.emit(command);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n commands={this.commands}\n uploadOptions={this.uploadOptions}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onCommandSelect={this.#handleCommandSelect}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onCommandSelect: (command: CommandPayload | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n style: React.CSSProperties;\n range: {\n start: number;\n end: number;\n };\n actions: ActionWithAncestors[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\n onCommandSelect,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionOverlay, setMentionOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const [activeActionIndexes, setActiveActionIndexes] = useState<number[]>([0]);\n const [command, setCommand] = useState<CommandPayload | null>(null);\n const [mentioned, setMentioned] = useState<string | null>(null);\n const [commandPopover, setCommandPopover] = useState<MentionPopover | null>(\n null\n );\n const [commandOverlay, setCommandOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [commandText, setCommandText] = useState(\"\");\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n const uploadEnabled = uploadOptions?.enabled;\n const uploadAccept = uploadOptions?.accept;\n const {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\n } = useFilesUploading(uploadOptions);\n\n useEffect(() => {\n if (!uploadEnabled) {\n resetFiles();\n }\n }, [uploadEnabled, resetFiles]);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const doSubmit = useCallback(\n (value: string) => {\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 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 && allFilesDone) {\n doSubmit(e.currentTarget.value);\n }\n },\n [doSubmit, allFilesDone]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n aiEmployees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"@\")) {\n const mentionText = previousContent.slice(1).toLowerCase();\n const matchedEmployees = aiEmployees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, 10);\n if (matchedEmployees.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setMentionPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return;\n }\n }\n }\n setMentionPopover(null);\n\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n commands?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"/\")) {\n const commandText = previousContent.slice(1).toLowerCase();\n const matchedCommands = commands\n .filter((command) =>\n command.label.toLowerCase().includes(commandText)\n )\n .slice(0, 10);\n if (matchedCommands.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setCommandPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: matchedCommands.map((command) => ({\n key: command.value,\n text: command.label,\n data: command,\n ancestors: [],\n items: getCommandSubMenu(command, []),\n payload: command.payload,\n })),\n });\n setActiveActionIndexes([0]);\n return;\n }\n }\n }\n setCommandPopover(null);\n },\n [aiEmployees, commands]\n );\n\n useEffect(() => {\n if (mentionedText && !value.includes(mentionedText)) {\n setMentionedText(\"\");\n setMentioned(null);\n }\n }, [mentionedText, value]);\n\n useEffect(() => {\n if (commandText && !value.includes(commandText)) {\n setCommandText(\"\");\n setCommand(null);\n onCommandSelect(null);\n }\n }, [commandText, onCommandSelect, value]);\n\n const handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n setMentionOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n setMentionOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [mentionedText, hasFiles]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (!commandText || !element) {\n setCommandOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandText.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [commandText, hasFiles]);\n\n const chatCommand = useMemo(() => {\n const command = getChatCommand();\n if (command) {\n setChatCommand(null);\n }\n return command;\n }, []);\n\n useEffect(() => {\n if (chatCommand) {\n setCommand(chatCommand.payload);\n onCommandSelect(chatCommand.payload);\n }\n }, [chatCommand, onCommandSelect]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (chatCommand && element) {\n const commandStr = `/${chatCommand.command} `;\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandStr.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n valueRef.current = commandStr;\n selectionRef.current = {\n start: commandStr.length,\n end: commandStr.length,\n };\n setValue(commandStr);\n setCommandText(commandStr);\n }\n }, [chatCommand]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n setMentioned((action as { data?: AIEmployee }).data!.employeeId);\n textareaRef.current?.focus();\n },\n [mentionPopover]\n );\n\n const handleSelectCommand = useCallback(\n (action: ActionWithAncestors) => {\n const command = `/${[...action.ancestors!.map((an) => an.label), action.text].join(\": \")} `;\n const prefix = `${valueRef.current.slice(0, commandPopover!.range.start)}${command}`;\n const newValue = `${prefix}${valueRef.current.slice(commandPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setCommandText(command);\n setCommandPopover(null);\n setCommand(action.payload!);\n onCommandSelect(action.payload!);\n textareaRef.current?.focus();\n },\n [commandPopover, onCommandSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n setCommandPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n if (mentionPopover) {\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = mentionPopover.actions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n } else {\n setActiveActionIndexes((prev) => {\n let cursor = 0;\n let { actions } = commandPopover!;\n const list: number[] = [];\n while (cursor < prev.length - 1) {\n const action = actions[prev[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n list.push(prev[cursor]);\n cursor += 1;\n }\n const nextIndex = prev[cursor] + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = actions.length;\n const next = (total + nextIndex) % total;\n list.push(next);\n return list;\n });\n }\n return false;\n }\n case \"Enter\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n if (mentionPopover) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n handleMention(mentionPopover.actions[activeActionIndex]);\n return false;\n }\n } else if (commandPopover) {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n\n if (e.key === \"ArrowLeft\") {\n if (activeActionIndexes.length > 1) {\n setActiveActionIndexes((prev) => prev.slice(0, -1));\n }\n return false;\n }\n\n let cursor = 0;\n let { actions } = commandPopover!;\n let action: ActionWithAncestors | undefined;\n while (cursor < activeActionIndexes.length) {\n action = actions[activeActionIndexes[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n cursor += 1;\n }\n if (action) {\n if (isSubMenuAction(action)) {\n setActiveActionIndexes((prev) => [...prev, 0]);\n } else if (e.key === \"Enter\") {\n handleSelectCommand(action);\n }\n }\n return false;\n }\n break;\n case \"Delete\":\n case \"Backspace\": {\n const popovers = [\n {\n textLength: mentionedText.length,\n prefixLength: 0,\n },\n {\n textLength: commandText.length,\n prefixLength: 0,\n },\n ];\n\n for (const { textLength, prefixLength } of popovers) {\n if (textLength) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = prefixLength;\n const currentEnd = currentStart + textLength;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n activeActionIndexes,\n commandPopover,\n commandText.length,\n handleMention,\n handleSelectCommand,\n mentionPopover,\n mentionedText.length,\n ]\n );\n\n const commandCheckedKeys = useMemo(() => {\n if (!commandPopover) {\n return [];\n }\n let actions = commandPopover.actions;\n const checkedKeys: (string | number)[] = [];\n for (let i = 0; i < activeActionIndexes.length; i += 1) {\n const index = activeActionIndexes[i];\n const action = actions[index];\n if (action) {\n if (isSubMenuAction(action)) {\n checkedKeys.push(action.key!);\n actions = action.items;\n } else {\n checkedKeys.push(action.key!);\n break;\n }\n } else {\n break;\n }\n }\n return checkedKeys;\n }, [activeActionIndexes, commandPopover]);\n\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles]\n );\n\n const sendDisabled =\n !value ||\n !allFilesDone ||\n (!!mentionedText && value.length <= mentionedText.length) ||\n (!!commandText && value.length <= commandText.length);\n\n return (\n <>\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={hasFiles ? 144 : 60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onPaste={paste}\n style={{\n paddingTop: hasFiles ? 94 : 10,\n }}\n />\n {hasFiles && (\n <UploadedFiles\n files={files!}\n onRemove={(uid, abortController) => {\n removeFile(uid);\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <div className=\"buttons\">\n {uploadEnabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadAccept}\n disabled={exceeded}\n onChange={(files) => {\n appendFiles(files);\n textareaRef.current?.focus();\n }}\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n <button\n className=\"btn-send\"\n disabled={sendDisabled}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n {mentionOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {commandOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {mentionPopover &&\n createPortal(\n <WrappedActions\n actions={mentionPopover.actions}\n style={mentionPopover.style}\n activeKeys={[mentionPopover.actions[activeActionIndex].key!]}\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={commandCheckedKeys}\n onActionClick={(e) =>\n handleSelectCommand(e.detail as ActionWithAncestors)\n }\n />,\n document.body\n )}\n </div>\n </div>\n <GlobalDragOverlay\n disabled={!uploadEnabled || exceeded}\n uploadOptions={uploadOptions}\n onFilesDropped={onFilesDropped}\n />\n </>\n );\n}\n\nfunction getCommandSubMenu(\n command: Command,\n ancestors: Command[]\n): ActionWithAncestors[] | undefined {\n return command.options?.map((subCommand) => {\n const nextAncestors = [...ancestors, command];\n return {\n key: subCommand.value,\n text: subCommand.label,\n data: subCommand,\n ancestors: nextAncestors,\n items: getCommandSubMenu(subCommand, nextAncestors),\n payload: subCommand.payload,\n };\n });\n}\n\nfunction isSubMenuAction(\n action: SimpleAction | SubMenuAction\n): action is SubMenuAction {\n return !!(action as SubMenuAction).items?.length;\n}\n"],"names":["module","exports","options","document","update","remove","styleElement","insertStyleElement","obj","css","supports","concat","media","needLayer","layer","length","sourceMap","btoa","unescape","encodeURIComponent","JSON","stringify","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","K","en","ASK_ANY_THING","COMMON_TASKS","zh","NS","locales","t","i18n","getFixedT","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","url","String","__esModule","default","test","slice","hash","needQuotes","replace","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","nonce","setAttribute","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","id","toString","MIME_TYPES","Map","formatFileSize","size","unit","pipes","unitFormat","number","Math","round","getFileTypeAndIcon","mimeType","filename","type","getMimeTypeByFilename","startsWith","fileOther","fileText","filePdf","fileDoc","fileXls","filePpt","_MIME_TYPES$get","ext","matches","match","toLowerCase","get","stylesInDOM","getIndexByIdentifier","identifier","result","i","modulesToDom","list","idCountMap","identifiers","item","base","count","indexByIdentifier","references","updater","addElementStyle","byIndex","splice","api","domAPI","newObj","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","styleSheet","cssText","firstChild","appendChild","createTextNode","hiddenElement","getCaretPositionInTextarea","textarea","createElement","body","getMirroredStyle","textContent","span","rect","getBoundingClientRect","top","left","getContentRectsInTextarea","prefix","measureContent","fullRect","leadingChar","leadingSpan","leadingRect","trailingChar","trailingSpan","trailingRect","rects","DOMRect","right","bottom","height","width","memo","insert","style","target","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","_extends","assign","bind","arguments","source","prototype","hasOwnProperty","call","this","element","setAttributes","attributes","chatCommand","setChatCommand","command","getChatCommand","customElements","define","createProviderClass","initializeI18n","defineElement","property","event","method","createDecorators","ChatBoxComponent","forwardRef","LegacyChatBoxComponent","_ChatBox","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ChatBox_brand","WeakSet","_handleMessageSubmit","_H","_handleChatSubmit","_I","_handleCommandSelect","ChatBox","ReactNextElement","constructor","_classPrivateMethodInitSpec","_initProto","createRef","_classPrivateFieldInitSpec","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_init_uploadOptions","_init_extra_uploadOptions","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","_get_messageSubmit","emit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","_init_commandSelect","_init_extra_commandSelect","_get_commandSelect","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","aiEmployees","commands","uploadOptions","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","render","React","onMessageSubmit","onChatSubmit","onCommandSelect","_ref","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionOverlay","setMentionOverlay","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","activeActionIndexes","setActiveActionIndexes","setCommand","mentioned","setMentioned","commandPopover","setCommandPopover","commandOverlay","setCommandOverlay","commandText","setCommandText","selectionRef","uploadEnabled","enabled","uploadAccept","accept","files","resetFiles","appendFiles","removeFile","hasFiles","allFilesDone","fileInfos","exceeded","paste","useFilesUploading","useEffect","store","__elevo_try_it_out","content","useImperativeHandle","_textareaRef$current","focus","doSubmit","useCallback","cmd","aiEmployeeId","handleSubmit","currentTarget","handleChange","selectionStart","selectionEnd","previousContent","mentionText","matchedEmployees","filter","employee","employeeId","includes","name","position","textareaRect","zIndex","range","start","end","actions","map","text","data","matchedCommands","label","ancestors","items","getCommandSubMenu","handleSubmitClick","Promise","resolve","then","_textareaRef$current2","_textareaRef$current3","_textareaRef$current4","useMemo","_textareaRef$current5","commandStr","handleMention","action","_textareaRef$current6","mention","newValue","handleSelectCommand","_textareaRef$current7","an","join","handleKeyDown","preventDefault","stopPropagation","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","cursor","isSubMenuAction","next","popovers","textLength","prefixLength","currentStart","currentEnd","min","max","commandCheckedKeys","checkedKeys","uploadButtonRef","onFilesDropped","_textareaRef$current8","sendDisabled","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","desiredSelectionRef","onSubmit","onChange","onKeyDown","onPaste","paddingTop","UploadedFiles","onRemove","uid","abortController","abort","onAdd","_uploadButtonRef$curr","requestUpload","UploadButton","_textareaRef$current9","onClick","lib","icon","overlay","createPortal","activeKeys","detail","GlobalDragOverlay","_command$options","subCommand","nextAncestors","_items","_ChatBox2","_set_messageSubmit","_set_chatSubmit","_set_commandSelect","c","_initClass","_applyDecs","styleTexts","styleText","UploadedFilesStyleText","shadowOptions","delegatesFocus","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[7218],{1740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,i&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var r=n.sourceMap;r&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},23396:(e,t,n)=>{n.d(t,{I:()=>o,K:()=>i,NS:()=>r,t:()=>s});var a=n(52616);let i=function(e){return e.TERMINATE_THE_TASK="TERMINATE_THE_TASK",e}({});const r="bricks/ai-portal/chat-input",o={en:{TERMINATE_THE_TASK:"Terminate the task"},zh:{TERMINATE_THE_TASK:"终止任务"}},s=a.i18n.getFixedT(null,r)},30855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},45962:(e,t,n)=>{n.r(t),n.d(t,{ChatInput:()=>re});var a,i=n(74635),r=n(70918),o=n(26902),s=n(5536),c=n(86121),l=n(70829),p=n(62740),u=n(18769),d=n.n(u),m=n(90870),f=n(30981),h=n(92879),b=(n(34419),n(52616)),g=n(99126),x=n(53373),v=n.n(x),A=n(23396),w=n(84479),k=n(45387),E=n(51020),T=n(45889),y=n(57227),M=n(21020);let S,C,F,N,R,_,W,I,O,z,D,B,j,H,K,L,P,q,U,$,J,G,Q,V,X;(0,b.initializeI18n)(A.NS,A.I);const Y={lib:"antd",icon:"loading-3-quarters",spinning:!0},Z={lib:"fa",prefix:"far",icon:"circle-stop"},ee=(0,f.wrapBrick)("eo-icon"),te=(0,f.wrapBrick)("ai-portal.icon-button"),{defineElement:ne,property:ae,event:ie}=(0,m.createDecorators)();let re;var oe=new WeakMap,se=new WeakMap,ce=new WeakMap,le=new WeakMap,pe=new WeakMap,ue=new WeakMap,de=new WeakMap,me=new WeakSet,fe=new WeakMap,he=new WeakMap,be=new WeakMap,ge=new WeakMap,xe=new WeakMap;class ve extends f.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,me),(0,r.A)(this,oe,C(this)),(0,r.A)(this,se,(F(this),N(this))),(0,r.A)(this,ce,(R(this),_(this))),(0,r.A)(this,le,(W(this),I(this))),(0,r.A)(this,pe,(O(this),z(this))),(0,r.A)(this,ue,(D(this),B(this))),(0,r.A)(this,de,(j(this),H(this))),(0,r.A)(this,fe,(P(this),e=>{(0,s.A)(me,this,K).emit(e)})),(0,r.A)(this,he,q(this)),(0,r.A)(this,be,(J(this),e=>{(0,s.A)(me,this,U).emit(e)})),(0,r.A)(this,ge,G(this)),(0,r.A)(this,xe,(X(this),()=>{(0,s.A)(me,this,Q).emit()}))}get placeholder(){return(0,l.A)(oe,this)}set placeholder(e){(0,c.A)(oe,this,e)}get autoFocus(){return(0,l.A)(se,this)}set autoFocus(e){(0,c.A)(se,this,e)}get submitDisabled(){return(0,l.A)(ce,this)}set submitDisabled(e){(0,c.A)(ce,this,e)}get supportsTerminate(){return(0,l.A)(le,this)}set supportsTerminate(e){(0,c.A)(le,this,e)}get terminating(){return(0,l.A)(pe,this)}set terminating(e){(0,c.A)(pe,this,e)}get uploadOptions(){return(0,l.A)(ue,this)}set uploadOptions(e){(0,c.A)(ue,this,e)}render(){return d().createElement(Ae,{placeholder:this.placeholder,autoFocus:this.autoFocus,submitDisabled:this.submitDisabled,supportsTerminate:this.supportsTerminate,terminating:this.terminating,uploadOptions:this.uploadOptions,onMessageSubmit:(0,l.A)(fe,this),onChatSubmit:(0,l.A)(be,this),onTerminate:(0,l.A)(xe,this)})}}function Ae(e){let{placeholder:t,autoFocus:n,submitDisabled:a,supportsTerminate:i,terminating:r,uploadOptions:o,onMessageSubmit:s,onChatSubmit:c,onTerminate:l}=e;const p=(0,u.useRef)(null),m=(0,u.useRef)(null),[f,b]=(0,u.useState)(""),x=(0,u.useRef)(""),[w,E]=(0,u.useState)(!1),S=null==o?void 0:o.enabled,C=null==o?void 0:o.accept,{files:F,resetFiles:N,appendFiles:R,removeFile:_,hasFiles:W,allFilesDone:I,fileInfos:O,exceeded:z,paste:D}=(0,T.O)(o),B=(0,u.useRef)(null);(0,u.useEffect)((()=>{S||N()}),[S,N]),(0,u.useEffect)((()=>{var e;n&&!a&&(null===(e=m.current)||void 0===e||e.focus())}),[n,a]);const j=(0,u.useCallback)((e=>{!a&&e&&I&&(s(e),c({content:e,files:O}),x.current="",b(""),N())}),[I,a,s,c,O,N]),H=(0,u.useCallback)((e=>{j(e.currentTarget.value)}),[j]),K=(0,u.useCallback)((e=>{x.current=e.target.value,b(e.target.value)}),[]),L=(0,u.useCallback)((()=>{j(x.current)}),[j]);(0,u.useEffect)((()=>{if(W)return void E(!0);const e=null==p?void 0:p.current;if(!e)return;const t=new g.A((t=>{for(const n of t)n.target===e&&(n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height)>52&&E(!0)}));return t.observe(e),()=>{t.disconnect()}}),[W]),(0,u.useEffect)((()=>{f||W||E(!1)}),[f,W]);const P=(0,u.useCallback)((e=>{var t;for(const t of e.nativeEvent.composedPath())if(t instanceof HTMLTextAreaElement||t instanceof HTMLButtonElement)return;null===(t=m.current)||void 0===t||t.focus()}),[]),q=(0,u.useCallback)((e=>{var t;R(e),null===(t=m.current)||void 0===t||t.focus()}),[R]);return d().createElement(d().Fragment,null,d().createElement("div",{className:"container",onClick:P},d().createElement("div",{className:v()("box",{wrap:w})},d().createElement("div",{className:"input",ref:p},d().createElement(h.e,{containerRef:p,ref:m,value:f,minRows:1,maxRows:4,borderSize:0,paddingSize:W?86:16,autoResize:!0,placeholder:t,submitWhen:"enter-without-shift",onSubmit:H,onChange:K,onPaste:D,style:{paddingTop:W?78:8}}),W&&d().createElement(k.C,{files:F,className:"condensed",onRemove:(e,t)=>{_(e),null==t||t.abort()},onAdd:()=>{var e;null===(e=B.current)||void 0===e||e.requestUpload()}})),d().createElement("div",{className:"toolbar"},S?d().createElement(d().Fragment,null,d().createElement(y.s,{ref:B,accept:C,disabled:z,onChange:e=>{var t;R(e),null===(t=m.current)||void 0===t||t.focus()}}),d().createElement("div",{className:"btn-divider"})):null,a&&i?d().createElement(d().Fragment,null,r?d().createElement(te,{icon:Y,disabled:!0}):d().createElement(te,{icon:Z,tooltip:(0,A.t)(A.K.TERMINATE_THE_TASK),onClick:l})):d().createElement("button",{className:"btn-send",disabled:a||!f||!I,onClick:L},d().createElement(ee,{lib:"fa",icon:"arrow-up"}))))),d().createElement(M.A,{disabled:!S||z||(null==o?void 0:o.dragDisabled),uploadOptions:o,onFilesDropped:q}))}a=ve,({e:[C,F,N,R,_,W,I,O,z,D,B,j,H,K,L,P,q,U,$,J,G,Q,V,X],c:[re,S]}=(0,p.A)(a,[ne("ai-portal.chat-input",{styleTexts:[w.A,E.A],shadowOptions:{delegatesFocus:!0}})],[[ae(),1,"placeholder"],[ae({type:Boolean}),1,"autoFocus"],[ae({type:Boolean}),1,"submitDisabled"],[ae({type:Boolean}),1,"supportsTerminate"],[ae({type:Boolean}),1,"terminating"],[ae({attribute:!1}),1,"uploadOptions"],[ie({type:"message.submit"}),1,"messageSubmit",e=>(0,l.A)(de,e),(e,t)=>(0,c.A)(de,e,t)],[ie({type:"chat.submit"}),1,"chatSubmit",e=>(0,l.A)(he,e),(e,t)=>(0,c.A)(he,e,t)],[ie({type:"terminate"}),1,"terminate",e=>(0,l.A)(ge,e),(e,t)=>(0,c.A)(ge,e,t)]],0,(e=>xe.has((0,o.A)(e))),f.ReactNextElement)),S()},60136:(e,t,n)=>{n.d(t,{v7:()=>u,NL:()=>d,xf:()=>m});var a=n(61919);const i=n.p+"images/62542537.png",r=n.p+"images/94d7a053.png",o=n.p+"images/0e7e6764.png",s=n.p+"images/7944ebaf.png",c=n.p+"images/c7ec12fe.png",l=n.p+"images/3316492a.png",p=new Map([["md","text/markdown"],["pdf","application/pdf"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["txt","text/plain"],["csv","text/csv"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["png","image/png"],["gif","image/gif"],["bmp","image/bmp"],["webp","image/webp"],["svg","image/svg+xml"]]);function u(e){const[t,n]=a.pipes.unitFormat(e,"bytes",1),i=+t;return`${i>100?Math.round(i):i} ${n}`}function d(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",l];switch(n){case"text/markdown":case"text/x-markdown":return["Markdown",i];case"application/pdf":return["PDF",r];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",o];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",c];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",s]}return n.startsWith("text/")?["Text",i]:["File",l]}function m(e){var t;let n="";const a=null==e?void 0:e.match(/\.([^.]+)$/);return a&&(n=a[1].toLowerCase()),null!==(t=p.get(n))&&void 0!==t?t:"unknown"}},72591:e=>{var t=[];function n(e){for(var n=-1,a=0;a<t.length;a++)if(t[a].identifier===e){n=a;break}return n}function a(e,a){for(var r={},o=[],s=0;s<e.length;s++){var c=e[s],l=a.base?c[0]+a.base:c[0],p=r[l]||0,u="".concat(l," ").concat(p);r[l]=p+1;var d=n(u),m={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==d)t[d].references++,t[d].updater(m);else{var f=i(m,a);a.byIndex=s,t.splice(s,0,{identifier:u,updater:f,references:1})}o.push(u)}return o}function i(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,i){var r=a(e=e||[],i=i||{});return function(e){e=e||[];for(var o=0;o<r.length;o++){var s=n(r[o]);t[s].references--}for(var c=a(e,i),l=0;l<r.length;l++){var p=n(r[l]);0===t[p].references&&(t[p].updater(),t.splice(p,1))}r=c}}},73656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},84479:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(36758),i=n.n(a),r=n(40935),o=n.n(r)()(i());o.push([e.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}button:focus,\ntextarea:focus{outline:none}button{margin:0;padding:0;font:inherit;background:none;border:none}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{position:relative;min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font:inherit;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:6px 0 6px 8px;margin-left:auto;display:flex;align-items:center;gap:12px}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}.btn-divider{width:1px;height:16px;background:rgba(0,0,0,0.1)}.files.condensed{top:2px;left:8px;right:8px}",""]);const s=o.toString()},88128:e=>{var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},89575:(e,t,n)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},a.apply(this,arguments)}n.d(t,{A:()=>a})},93051:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}}}]);
2
+ //# sourceMappingURL=chat-input.fce2d021.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/chat-input.fce2d021.js","mappings":"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","sources":["webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///./src/chat-input/i18n.ts","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///./src/chat-input/index.tsx","webpack:///./src/cruise-canvas/utils/file.ts","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///./src/chat-input/styles.shadow.css","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js"],"sourcesContent":["\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-input\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\nimport styleText from \"./styles.shadow.css\";\nimport { UploadedFiles } from \"../shared/FileUpload/UploadedFiles.js\";\nimport UploadedFilesStyleText from \"../shared/FileUpload/UploadedFiles.shadow.css\";\nimport { useFilesUploading } from \"../shared/useFilesUploading.js\";\nimport {\n UploadButton,\n type UploadButtonRef,\n} from \"../shared/FileUpload/UploadButton.js\";\nimport type { ChatPayload, UploadOptions } from \"../shared/interfaces.js\";\nimport GlobalDragOverlay from \"../shared/FileUpload/GlobalDragOverlay.js\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n\nconst ICON_STOP: GeneralIconProps = {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n uploadOptions?: UploadOptions;\n}\n\nexport interface ChatInputEvents {\n \"chat.submit\": CustomEvent<ChatPayload>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onChatSubmit: \"chat.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText, UploadedFilesStyleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatInput extends ReactNextElement implements ChatInputProps {\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ type: Boolean })\n accessor submitDisabled: boolean | undefined;\n\n @property({ type: Boolean })\n accessor supportsTerminate: boolean | undefined;\n\n @property({ type: Boolean })\n accessor terminating: boolean | undefined;\n\n @property({ attribute: false })\n accessor uploadOptions: UploadOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\n */\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\n };\n\n @event({ type: \"terminate\" })\n accessor #terminate!: EventEmitter<void>;\n\n #handleTerminate = () => {\n this.#terminate.emit();\n };\n\n render() {\n return (\n <ChatInputComponent\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n submitDisabled={this.submitDisabled}\n supportsTerminate={this.supportsTerminate}\n terminating={this.terminating}\n uploadOptions={this.uploadOptions}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n uploadOptions,\n onMessageSubmit,\n onChatSubmit,\n onTerminate,\n}: ChatInputComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [wrap, setWrap] = useState(false);\n const uploadEnabled = uploadOptions?.enabled;\n const uploadAccept = uploadOptions?.accept;\n const {\n files,\n resetFiles,\n appendFiles,\n removeFile,\n hasFiles,\n allFilesDone,\n fileInfos,\n exceeded,\n paste,\n } = useFilesUploading(uploadOptions);\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n useEffect(() => {\n if (!uploadEnabled) {\n resetFiles();\n }\n }, [uploadEnabled, resetFiles]);\n\n useEffect(() => {\n if (autoFocus && !submitDisabled) {\n textareaRef.current?.focus();\n }\n }, [autoFocus, submitDisabled]);\n\n const onBeforeSubmit = useCallback(\n (value: string) => {\n if (submitDisabled || !value || !allFilesDone) {\n return;\n }\n\n onMessageSubmit(value);\n onChatSubmit({ content: value, files: fileInfos });\n valueRef.current = \"\";\n setValue(\"\");\n resetFiles();\n },\n [\n allFilesDone,\n submitDisabled,\n onMessageSubmit,\n onChatSubmit,\n fileInfos,\n resetFiles,\n ]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onBeforeSubmit(e.currentTarget.value);\n },\n [onBeforeSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onBeforeSubmit(valueRef.current);\n }, [onBeforeSubmit]);\n\n // istanbul ignore next\n useEffect(() => {\n if (hasFiles) {\n setWrap(true);\n return;\n }\n const container = containerRef?.current;\n if (!container) {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n const currentBlockSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (currentBlockSize > 52) {\n setWrap(true);\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [hasFiles]);\n\n useEffect(() => {\n if (!value && !hasFiles) {\n setWrap(false);\n }\n }, [value, hasFiles]);\n\n const handleContainerClick = useCallback((e: React.MouseEvent) => {\n for (const item of e.nativeEvent.composedPath()) {\n if (\n item instanceof HTMLTextAreaElement ||\n item instanceof HTMLButtonElement\n ) {\n return;\n }\n }\n textareaRef.current?.focus();\n }, []);\n\n const onFilesDropped = useCallback(\n (files: File[]) => {\n appendFiles(files);\n textareaRef.current?.focus();\n },\n [appendFiles]\n );\n\n return (\n <>\n <div className=\"container\" onClick={handleContainerClick}>\n <div className={classNames(\"box\", { wrap })}>\n <div className=\"input\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={1}\n maxRows={4}\n borderSize={0}\n paddingSize={hasFiles ? 86 : 16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n onPaste={paste}\n style={{\n paddingTop: hasFiles ? 78 : 8,\n }}\n />\n {hasFiles && (\n <UploadedFiles\n files={files!}\n className=\"condensed\"\n onRemove={(uid, abortController) => {\n removeFile(uid);\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n </div>\n <div className=\"toolbar\">\n {uploadEnabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadAccept}\n disabled={exceeded}\n onChange={(files) => {\n appendFiles(files);\n textareaRef.current?.focus();\n }}\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value || !allFilesDone}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" icon=\"arrow-up\" />\n </button>\n ) : (\n <>\n {terminating ? (\n <WrappedIconButton icon={ICON_LOADING} disabled />\n ) : (\n <WrappedIconButton\n icon={ICON_STOP}\n tooltip={t(K.TERMINATE_THE_TASK)}\n onClick={onTerminate}\n />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n <GlobalDragOverlay\n disabled={!uploadEnabled || exceeded || uploadOptions?.dragDisabled}\n uploadOptions={uploadOptions}\n onFilesDropped={onFilesDropped}\n />\n </>\n );\n}\n","import { pipes } from \"@easyops-cn/brick-next-pipes\";\nimport fileText from \"../images/file-text@2x.png\";\nimport filePdf from \"../images/file-pdf@2x.png\";\nimport fileDoc from \"../images/file-doc@2x.png\";\nimport filePpt from \"../images/file-ppt@2x.png\";\nimport fileXls from \"../images/file-xls@2x.png\";\nimport fileOther from \"../images/file-other@2x.png\";\n\nconst MIME_TYPES = new Map<string, string>([\n [\"md\", \"text/markdown\"],\n [\"pdf\", \"application/pdf\"],\n [\"doc\", \"application/msword\"],\n [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n [\"txt\", \"text/plain\"],\n [\"csv\", \"text/csv\"],\n [\"xls\", \"application/vnd.ms-excel\"],\n [\"xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n [\"ppt\", \"application/vnd.ms-powerpoint\"],\n [\n \"pptx\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n ],\n [\"jpg\", \"image/jpeg\"],\n [\"jpeg\", \"image/jpeg\"],\n [\"png\", \"image/png\"],\n [\"gif\", \"image/gif\"],\n [\"bmp\", \"image/bmp\"],\n [\"webp\", \"image/webp\"],\n [\"svg\", \"image/svg+xml\"],\n]);\n\nexport function formatFileSize(size: number) {\n const [value, unit] = pipes.unitFormat(size, \"bytes\", 1);\n const number = +value;\n return `${number > 100 ? Math.round(number) : number} ${unit}`;\n}\n\nexport function getFileTypeAndIcon(\n mimeType: string | undefined,\n filename: string | undefined\n): [type: string, icon: string] {\n const type = mimeType || getMimeTypeByFilename(filename);\n\n if (type.startsWith(\"image/\")) {\n return [\"Image\", fileOther];\n }\n\n switch (type) {\n case \"text/markdown\":\n case \"text/x-markdown\":\n return [\"Markdown\", fileText];\n case \"application/pdf\":\n return [\"PDF\", filePdf];\n case \"application/msword\":\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\n return [\"Word\", fileDoc];\n case \"application/vnd.ms-excel\":\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n return [\"Excel\", fileXls];\n case \"application/vnd.ms-powerpoint\":\n case \"application/vnd.openxmlformats-officedocument.presentationml.presentation\":\n return [\"PowerPoint\", filePpt];\n }\n\n if (type.startsWith(\"text/\")) {\n return [\"Text\", fileText];\n }\n\n return [\"File\", fileOther];\n}\n\nexport function getMimeTypeByFilename(filename: string | undefined): string {\n let ext = \"\";\n const matches = filename?.match(/\\.([^.]+)$/);\n if (matches) {\n ext = matches[1].toLowerCase();\n }\n return MIME_TYPES.get(ext) ?? \"unknown\";\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}button:focus,\ntextarea:focus{outline:none}button{margin:0;padding:0;font:inherit;background:none;border:none}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{position:relative;min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font:inherit;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:6px 0 6px 8px;margin-left:auto;display:flex;align-items:center;gap:12px}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}.btn-divider{width:1px;height:16px;background:rgba(0,0,0,0.1)}.files.condensed{top:2px;left:8px;right:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;"],"names":["module","exports","options","document","update","remove","styleElement","insertStyleElement","obj","css","supports","concat","media","needLayer","layer","length","sourceMap","btoa","unescape","encodeURIComponent","JSON","stringify","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","K","NS","locales","en","TERMINATE_THE_TASK","zh","t","i18n","getFixedT","nonce","setAttribute","initializeI18n","ICON_LOADING","lib","icon","spinning","ICON_STOP","prefix","WrappedIcon","wrapBrick","WrappedIconButton","defineElement","property","event","createDecorators","_ChatInput","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ChatInput_brand","WeakSet","_handleMessageSubmit","_H","_handleChatSubmit","_I","_handleTerminate","ChatInput","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_uploadOptions","_init_extra_uploadOptions","_init_messageSubmit","_init_extra_messageSubmit","value","_classPrivateGetter","this","_get_messageSubmit","emit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","_init_terminate","_init_extra_terminate","_get_terminate","placeholder","_classPrivateFieldGet","v","_classPrivateFieldSet","autoFocus","submitDisabled","supportsTerminate","terminating","uploadOptions","render","React","ChatInputComponent","onMessageSubmit","onChatSubmit","onTerminate","_ref","containerRef","useRef","textareaRef","setValue","useState","valueRef","wrap","setWrap","uploadEnabled","enabled","uploadAccept","accept","files","resetFiles","appendFiles","removeFile","hasFiles","allFilesDone","fileInfos","exceeded","paste","useFilesUploading","uploadButtonRef","useEffect","_textareaRef$current","current","focus","onBeforeSubmit","useCallback","content","handleSubmit","e","currentTarget","handleChange","target","handleSubmitClick","container","observer","ResizeObserver","entries","entry","contentBoxSize","blockSize","contentRect","height","observe","disconnect","handleContainerClick","_textareaRef$current2","item","nativeEvent","composedPath","HTMLTextAreaElement","HTMLButtonElement","onFilesDropped","_textareaRef$current3","className","onClick","classNames","ref","TextareaAutoResize","minRows","maxRows","borderSize","paddingSize","autoResize","submitWhen","onSubmit","onChange","onPaste","style","paddingTop","UploadedFiles","onRemove","uid","abortController","abort","onAdd","_uploadButtonRef$curr","requestUpload","UploadButton","disabled","_textareaRef$current4","tooltip","GlobalDragOverlay","dragDisabled","_ChatInput2","_set_messageSubmit","_set_chatSubmit","_set_terminate","c","_initClass","_applyDecs","styleTexts","styleText","UploadedFilesStyleText","shadowOptions","delegatesFocus","type","Boolean","attribute","o","_","has","_checkInRHS","MIME_TYPES","Map","formatFileSize","size","unit","pipes","unitFormat","number","Math","round","getFileTypeAndIcon","mimeType","filename","getMimeTypeByFilename","startsWith","fileOther","fileText","filePdf","fileDoc","fileXls","filePpt","_MIME_TYPES$get","ext","matches","match","toLowerCase","get","stylesInDOM","getIndexByIdentifier","identifier","result","i","modulesToDom","list","idCountMap","identifiers","id","base","count","indexByIdentifier","references","updater","addElementStyle","byIndex","splice","push","api","domAPI","newObj","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","styleSheet","cssText","firstChild","appendChild","createTextNode","___CSS_LOADER_EXPORT___","toString","memo","insert","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","_extends","Object","assign","bind","source","key","prototype","hasOwnProperty","call","element","createElement","setAttributes","attributes"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[366],{23182:(e,t,i)=>{i.r(t),i.d(t,{ChatStream:()=>_e});var s,a=i(74635),h=i(70918),n=i(26902),r=i(5536),o=i(86121),A=i(70829),p=i(62740),c=i(18769),w=i.n(c),l=i(90870),u=i(30981),k=(i(34419),i(52616)),d=i(48952),b=i(62232);let m,M,y,W,v,F,f,g,O,S,I,U,C,D,N,R,x,E,V,T,B,_,j,q,H,P,z,G,J,K,L,Q,X,Y,Z,$,ee,te,ie,se,ae,he,ne,re,oe,Ae,pe,ce,we,le,ue,ke,de,be,me,Me,ye,We,ve,Fe,fe,ge,Oe,Se,Ie,Ue,Ce,De,Ne,Re;(0,k.initializeI18n)(d.NS,d.I);const{defineElement:xe,property:Ee,event:Ve,method:Te}=(0,l.createDecorators)(),Be=(0,c.forwardRef)(b.C);let _e;var je=new WeakMap,qe=new WeakMap,He=new WeakMap,Pe=new WeakMap,ze=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Ke=new WeakMap,Le=new WeakMap,Qe=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Ze=new WeakMap,$e=new WeakMap,et=new WeakMap,tt=new WeakMap,it=new WeakMap,st=new WeakMap,at=new WeakMap,ht=new WeakSet,nt=new WeakMap,rt=new WeakMap,ot=new WeakMap,At=new WeakMap,pt=new WeakMap,ct=new WeakMap,wt=new WeakMap,lt=new WeakMap,ut=new WeakMap,kt=new WeakMap,dt=new WeakMap,bt=new WeakMap,mt=new WeakMap,Mt=new WeakMap,yt=new WeakMap,Wt=new WeakMap;class vt extends u.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,ht),(0,h.A)(this,je,(m(this),y(this))),(0,h.A)(this,qe,(W(this),v(this))),(0,h.A)(this,He,(F(this),f(this))),(0,h.A)(this,Pe,(g(this),O(this))),(0,h.A)(this,ze,(S(this),I(this))),(0,h.A)(this,Ge,(U(this),C(this))),(0,h.A)(this,Je,(D(this),N(this))),(0,h.A)(this,Ke,(R(this),x(this))),(0,h.A)(this,Le,(E(this),V(this))),(0,h.A)(this,Qe,(T(this),B(this))),(0,h.A)(this,Xe,(_(this),j(this))),(0,h.A)(this,Ye,(q(this),H(this))),(0,h.A)(this,Ze,(P(this),z(this))),(0,h.A)(this,$e,(G(this),J(this))),(0,h.A)(this,et,(K(this),L(this))),(0,h.A)(this,tt,(Q(this),X(this))),(0,h.A)(this,it,(Y(this),Z(this))),(0,h.A)(this,st,($(this),ee(this))),(0,h.A)(this,at,(te(this),ie(this))),(0,h.A)(this,nt,(he(this),()=>{(0,r.A)(ht,this,se).emit()})),(0,h.A)(this,rt,ne(this)),(0,h.A)(this,ot,(Ae(this),()=>{(0,r.A)(ht,this,re).emit()})),(0,h.A)(this,At,pe(this)),(0,h.A)(this,pt,(le(this),e=>{(0,r.A)(ht,this,ce).emit(e)})),(0,h.A)(this,ct,ue(this)),(0,h.A)(this,wt,(be(this),e=>{(0,r.A)(ht,this,ke).emit(e)})),(0,h.A)(this,lt,me(this)),(0,h.A)(this,ut,(We(this),()=>{(0,r.A)(ht,this,Me).emit("canvas")})),(0,h.A)(this,kt,ve(this)),(0,h.A)(this,dt,(ge(this),e=>{(0,r.A)(ht,this,Fe).emit(e)})),(0,h.A)(this,bt,Oe(this)),(0,h.A)(this,mt,(Ue(this),()=>{(0,r.A)(ht,this,Se).emit()})),(0,h.A)(this,Mt,Ce(this)),(0,h.A)(this,yt,(Re(this),e=>{(0,r.A)(ht,this,De).emit(e)})),(0,h.A)(this,Wt,(0,c.createRef)())}get conversationId(){return(0,A.A)(je,this)}set conversationId(e){(0,o.A)(je,this,e)}get initialRequest(){return(0,A.A)(qe,this)}set initialRequest(e){(0,o.A)(qe,this,e)}get replay(){return(0,A.A)(He,this)}set replay(e){(0,o.A)(He,this,e)}get replayDelay(){return(0,A.A)(Pe,this)}set replayDelay(e){(0,o.A)(Pe,this,e)}get supports(){return(0,A.A)(ze,this)}set supports(e){(0,o.A)(ze,this,e)}get showHumanActions(){return(0,A.A)(Ge,this)}set showHumanActions(e){(0,o.A)(Ge,this,e)}get showFeedback(){return(0,A.A)(Je,this)}set showFeedback(e){(0,o.A)(Je,this,e)}get showFeedbackAfterFailed(){return(0,A.A)(Ke,this)}set showFeedbackAfterFailed(e){(0,o.A)(Ke,this,e)}get showFeedbackOnView(){return(0,A.A)(Le,this)}set showFeedbackOnView(e){(0,o.A)(Le,this,e)}get showUiSwitch(){return(0,A.A)(Qe,this)}set showUiSwitch(e){(0,o.A)(Qe,this,e)}get hideMermaid(){return(0,A.A)(Xe,this)}set hideMermaid(e){(0,o.A)(Xe,this,e)}get previewUrlTemplate(){return(0,A.A)(Ye,this)}set previewUrlTemplate(e){(0,o.A)(Ye,this,e)}get showCases(){return(0,A.A)(Ze,this)}set showCases(e){(0,o.A)(Ze,this,e)}get exampleProjects(){return(0,A.A)($e,this)}set exampleProjects(e){(0,o.A)($e,this,e)}get tryItOutUrl(){return(0,A.A)(et,this)}set tryItOutUrl(e){(0,o.A)(et,this,e)}get uploadOptions(){return(0,A.A)(tt,this)}set uploadOptions(e){(0,o.A)(tt,this,e)}get notices(){return(0,A.A)(it,this)}set notices(e){(0,o.A)(it,this,e)}get showNoticeIcon(){return(0,A.A)(st,this)}set showNoticeIcon(e){(0,o.A)(st,this,e)}resumed(){var e,t;null===(e=(0,A.A)(Wt,this).current)||void 0===e||null===(t=e.resumed)||void 0===t||t.call(e)}feedbackSubmitDone(){var e;null===(e=(0,A.A)(Wt,this).current)||void 0===e||e.feedbackSubmitDone()}feedbackSubmitFailed(){var e;null===(e=(0,A.A)(Wt,this).current)||void 0===e||e.feedbackSubmitFailed()}feedbackOnViewDone(e){var t;null===(t=(0,A.A)(Wt,this).current)||void 0===t||t.feedbackOnViewDone(e)}render(){return w().createElement(Be,{conversationId:this.conversationId,initialRequest:this.initialRequest,replay:this.replay,replayDelay:this.replayDelay,supports:this.supports,showHumanActions:this.showHumanActions,showFeedback:this.showFeedback,showFeedbackAfterFailed:this.showFeedbackAfterFailed,showFeedbackOnView:this.showFeedbackOnView,showUiSwitch:this.showUiSwitch,showNoticeIcon:this.showNoticeIcon,previewUrlTemplate:this.previewUrlTemplate,showCases:this.showCases,exampleProjects:this.exampleProjects,tryItOutUrl:this.tryItOutUrl,uploadOptions:this.uploadOptions,notices:this.notices,onShare:(0,A.A)(nt,this),onTerminate:(0,A.A)(ot,this),onSubmitFeedback:(0,A.A)(pt,this),onSwitchToCanvas:(0,A.A)(ut,this),onFeedbackOnView:(0,A.A)(wt,this),onDetailChange:(0,A.A)(dt,this),onMarkNoticesRead:(0,A.A)(mt,this),onNoticeClick:(0,A.A)(yt,this),ref:(0,A.A)(Wt,this)})}}s=vt,({e:[y,W,v,F,f,g,O,S,I,U,C,D,N,R,x,E,V,T,B,_,j,q,H,P,z,G,J,K,L,Q,X,Y,Z,$,ee,te,ie,se,ae,he,ne,re,oe,Ae,pe,ce,we,le,ue,ke,de,be,me,Me,ye,We,ve,Fe,fe,ge,Oe,Se,Ie,Ue,Ce,De,Ne,Re,m],c:[_e,M]}=(0,p.A)(s,[xe("ai-portal.chat-stream",{shadowOptions:!1})],[[Ee(),1,"conversationId"],[Ee({attribute:!1,render:!1}),1,"initialRequest"],[Ee({type:Boolean}),1,"replay"],[Ee({type:Number}),1,"replayDelay"],[Ee({attribute:!1}),1,"supports"],[Ee({type:Boolean}),1,"showHumanActions"],[Ee({type:Boolean}),1,"showFeedback"],[Ee({type:Boolean}),1,"showFeedbackAfterFailed"],[Ee({type:Boolean}),1,"showFeedbackOnView"],[Ee({type:Boolean}),1,"showUiSwitch"],[Ee({type:Boolean,render:!1}),1,"hideMermaid"],[Ee(),1,"previewUrlTemplate"],[Ee({attribute:!1}),1,"showCases"],[Ee({attribute:!1}),1,"exampleProjects"],[Ee(),1,"tryItOutUrl"],[Ee({attribute:!1}),1,"uploadOptions"],[Ee({attribute:!1}),1,"notices"],[Ee({type:Boolean}),1,"showNoticeIcon"],[Ve({type:"share"}),1,"shareEvent",e=>(0,A.A)(at,e),(e,t)=>(0,o.A)(at,e,t)],[Ve({type:"terminate"}),1,"terminateEvent",e=>(0,A.A)(rt,e),(e,t)=>(0,o.A)(rt,e,t)],[Ve({type:"feedback.submit"}),1,"feedbackSubmitEvent",e=>(0,A.A)(At,e),(e,t)=>(0,o.A)(At,e,t)],[Ve({type:"feedback.on.view"}),1,"feedbackOnViewEvent",e=>(0,A.A)(ct,e),(e,t)=>(0,o.A)(ct,e,t)],[Ve({type:"ui.switch"}),1,"switch",e=>(0,A.A)(lt,e),(e,t)=>(0,o.A)(lt,e,t)],[Ve({type:"detail.change"}),1,"detailChange",e=>(0,A.A)(kt,e),(e,t)=>(0,o.A)(kt,e,t)],[Ve({type:"mark.notices.read"}),1,"markNoticesReadEvent",e=>(0,A.A)(bt,e),(e,t)=>(0,o.A)(bt,e,t)],[Ve({type:"notice.click"}),1,"noticeClickEvent",e=>(0,A.A)(Mt,e),(e,t)=>(0,o.A)(Mt,e,t)],[Te(),2,"resumed"],[Te(),2,"feedbackSubmitDone"],[Te(),2,"feedbackSubmitFailed"],[Te(),2,"feedbackOnViewDone"]],0,(e=>Wt.has((0,n.A)(e))),u.ReactNextElement)),M()}}]);
2
+ //# sourceMappingURL=chat-stream.541a3565.js.map