@next-bricks/ai-portal 0.11.2 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +9 -9
- package/dist/chunks/1550.6cb58338.js +3 -0
- package/dist/chunks/1550.6cb58338.js.map +1 -0
- package/dist/chunks/2335.dabfa9b0.js +2 -0
- package/dist/chunks/2335.dabfa9b0.js.map +1 -0
- package/dist/chunks/3171.2a5ada96.js +2 -0
- package/dist/chunks/{3171.d2e19596.js.map → 3171.2a5ada96.js.map} +1 -1
- package/dist/chunks/4765.d7dc3188.js +2 -0
- package/dist/chunks/4765.d7dc3188.js.map +1 -0
- package/dist/chunks/{4837.21f9d29e.js → 4837.e5e4f6ba.js} +2 -2
- package/dist/chunks/4837.e5e4f6ba.js.map +1 -0
- package/dist/chunks/5552.d3a116bf.js +2 -0
- package/dist/chunks/{5552.13cc8d4c.js.map → 5552.d3a116bf.js.map} +1 -1
- package/dist/chunks/7146.70327c1b.js +2 -0
- package/dist/chunks/7146.70327c1b.js.map +1 -0
- package/dist/chunks/{7218.b1774ffd.js → 7218.b88d14a5.js} +2 -2
- package/dist/chunks/7218.b88d14a5.js.map +1 -0
- package/dist/chunks/7301.6a6571ab.js +2 -0
- package/dist/chunks/7301.6a6571ab.js.map +1 -0
- package/dist/chunks/9140.4a212f26.js +3 -0
- package/dist/chunks/9140.4a212f26.js.map +1 -0
- package/dist/chunks/chat-box.e8999629.js +2 -0
- package/dist/chunks/{chat-box.c130e9ef.js.map → chat-box.e8999629.js.map} +1 -1
- package/dist/chunks/{chat-history.5378cd90.js → chat-history.1590358d.js} +3 -3
- package/dist/chunks/{chat-history.5378cd90.js.map → chat-history.1590358d.js.map} +1 -1
- package/dist/chunks/cruise-canvas.70df84fc.js +2 -0
- package/dist/chunks/cruise-canvas.70df84fc.js.map +1 -0
- package/dist/chunks/main.026a4dfb.js +2 -0
- package/dist/chunks/main.026a4dfb.js.map +1 -0
- package/dist/examples.json +6 -6
- package/dist/index.08d0440f.js +2 -0
- package/dist/index.08d0440f.js.map +1 -0
- package/dist/manifest.json +36 -36
- package/dist-types/cruise-canvas/utils/converters/{convertCardList.d.ts → convertList.d.ts} +1 -1
- package/dist-types/cruise-canvas/utils/converters/fixDataSource.d.ts +1 -0
- package/dist-types/cruise-canvas/utils/converters/interfaces.d.ts +0 -1
- package/dist-types/cruise-canvas/utils/converters/isExpression.d.ts +1 -1
- package/package.json +2 -2
- package/dist/chunks/1550.3bc6313e.js +0 -3
- package/dist/chunks/1550.3bc6313e.js.map +0 -1
- package/dist/chunks/3171.d2e19596.js +0 -2
- package/dist/chunks/3933.fe02065c.js +0 -2
- package/dist/chunks/3933.fe02065c.js.map +0 -1
- package/dist/chunks/4834.7f1fbe58.js +0 -2
- package/dist/chunks/4834.7f1fbe58.js.map +0 -1
- package/dist/chunks/4837.21f9d29e.js.map +0 -1
- package/dist/chunks/5552.13cc8d4c.js +0 -2
- package/dist/chunks/6314.14f08758.js +0 -2
- package/dist/chunks/6314.14f08758.js.map +0 -1
- package/dist/chunks/7218.b1774ffd.js.map +0 -1
- package/dist/chunks/7301.9ad055ca.js +0 -2
- package/dist/chunks/7301.9ad055ca.js.map +0 -1
- package/dist/chunks/9140.e7ab6f71.js +0 -3
- package/dist/chunks/9140.e7ab6f71.js.map +0 -1
- package/dist/chunks/chat-box.c130e9ef.js +0 -2
- package/dist/chunks/cruise-canvas.ee3741b4.js +0 -2
- package/dist/chunks/cruise-canvas.ee3741b4.js.map +0 -1
- package/dist/chunks/main.a5ef261a.js +0 -2
- package/dist/chunks/main.a5ef261a.js.map +0 -1
- package/dist/index.8a682e3b.js +0 -2
- package/dist/index.8a682e3b.js.map +0 -1
- /package/dist/chunks/{1550.3bc6313e.js.LICENSE.txt → 1550.6cb58338.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9140.e7ab6f71.js.LICENSE.txt → 9140.4a212f26.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-history.5378cd90.js.LICENSE.txt → chat-history.1590358d.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/4837.21f9d29e.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args, {\n cache: cache ? \"default\" : \"reload\"\n });\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[3171,5552],{5552:(n,t,e)=>{e.r(t),e.d(t,{i18n:()=>p,i18nText:()=>l,initializeI18n:()=>u});var i=e(5630),s=e(23),r=e(848);let a=!1;const o=new Set;function u(n,t){if(a||(a=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),n&&t&&!o.has(n)){o.add(n);for(const[e,i]of Object.entries(t))s.i18n.addResourceBundle(e,n,i)}}var c=e(6548);function l(n){var t;if(!n)return;const e=null!==(t=s.i18n.language)&&void 0!==t?t:"zh-CN";if((0,c.hasOwnProperty)(n,e))return n[e];const i=e.split("-")[0];if(i!==e)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const r=`${i}-`;for(const t of Object.keys(n))if(t.startsWith(r))return n[t]}const p=i.default}}]);
|
|
2
|
-
//# sourceMappingURL=5552.13cc8d4c.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[3933,6314],{3933:(e,t,o)=>{function n(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(r,s){if("string"==typeof t?r.name===t:t.includes(r.name)){const t=[];for(let i=1;i<=o;i++){const o=s[s.length-i];if("MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key){const s=o.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(n?`${r.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(n?`${r.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===o&&e.usedProperties.add(t.join("."))}}}function r(e,t){return function(o,n,r){if(n.name===e){const e=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=n.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?o.usedArgs.add(t.value):o.hasNonStaticUsage=!0}}}}}o.r(t),o.d(t,{beforeVisitGlobalMember:()=>n,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>S,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>P,scanPermissionActionsInStoryboard:()=>v,strictCollectMemberUsage:()=>u,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>l,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=r("APP","getMenu"),i=r("INSTALLED_APPS","has");var a=o(1321),c=o(6548);function l(e,t,o){const n=new WeakSet,{matchExpressionString:r,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:l}="string"==typeof o?{matchExpressionString:e=>e.includes(o)}:o;!function e(o){if("string"==typeof o)if((0,a.isEvaluable)(o))if(r(o))try{(0,a.preevaluate)(o,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,n){t(e,n,o)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(o);else null==i||i(o);else if((0,c.isObject)(o)){if(n.has(o))return;n.add(o),null==l||l(o);for(const t of Array.isArray(o)?o:Object.values(o))e(t)}}(e)}function u(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:n,nonStaticUsage:r,usedProperties:s}=p(e,t,o);if(n)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${r}"`);return s}function p(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r={usedProperties:new Set,hasNonStaticUsage:!1},s=n(r,t,o);return l(e,((e,t,o)=>{s(e,t),r.hasNonStaticUsage&&(r.nonStaticUsage=o)}),t),r}const d=["CTX","STATE","FORM_STATE"];function f(e,t,o){if(e.includes(t)){const r={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(r,o)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(r.usedProperties.size>0)return r.usedProperties;console.warn(`You are using "${t}" but no \`${o}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],o={context:!1,state:!1,formState:!1},n={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,r]=e.split(".");o[n[t]]||(o[n[t]]=[]),o[n[t]].push(r)})),o}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,o){if(Array.isArray(e))for(const n of e)null!=o&&o.matchSource&&!o.matchSource(n.source)||g(n,t)}function g(e,t,o){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){o||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function S(e,t,o){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,n(s,t,r),o),s.hasNonStaticUsage&&!o)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const m="PERMISSIONS",b="check";function v(e){var t;const o=new Set,n=k(o),{customTemplates:r,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return l([e.routes,r],n,m),h(s,n,{matchSource:e=>e.includes(m)}),Array.from(o)}function P(e){const t=new Set;return l(e,k(t),m),Array.from(t)}function k(e){return function(t,o){if(t.name===m){const t=o[o.length-1],n=o[o.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===b:"Identifier"===t.node.property.type&&t.node.property.name===b))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
|
|
2
|
-
//# sourceMappingURL=6314.14f08758.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6314.14f08758.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7218.b1774ffd.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args, {\n cache: cache ? \"default\" : \"reload\"\n });\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[7301],{1107:(e,t,n)=>{e.exports=n.p+"images/eef4f2bd.png"},1411:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(6758),s=n.n(a),i=n(935),r=n.n(i)()(s());r.push([e.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:#2540ff;margin:0 7px}.item:hover .working,\n.item.active .working{display:none}",""]);const o=r.toString()},2165:(e,t,n)=>{n.d(t,{A:()=>m});var a=n(6758),s=n.n(a),i=n(935),r=n.n(i),o=n(62),l=n.n(o),c=new URL(n(2360),n.b),u=r()(s()),d=l()(c);u.push([e.id,`:host{display:block;background-color:#fff;background-image:url(${d});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`,""]);const m=u.toString()},2360:(e,t,n)=>{e.exports=n.p+"images/6336f999.png"},6372:(e,t,n)=>{var a,s=n(4635),i=n(918),r=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),d=n(8769),m=n.n(d),p=n(7921),h=n(1280),g=n(5903),b=(n(6477),n(23)),f=n(3373),v=n.n(f),A=n(9126),k=n(7566),E=n(9445),x=n(79),w=n(2464),y=n(8231),S=n(6494),N=n(7642),R=n(2773),M=n(9533),T=n(3153),_=n(4999),C=n(7954),I=n(4388),Y=n(6938),W=n(4609),j=n(9295),O=n(6088),D=n(6854),L=n(5805),P=n(5620),z=n(3349),B=n(2601),U=n(7097);let V,F,H,$,K,q,G,Q,X,J,Z,ee,te,ne,ae,se,ie,re,oe,le,ce,ue,de,me,pe,he;(0,b.initializeI18n)(x.NS,x.I);const{defineElement:ge,property:be,event:fe,method:ve}=(0,p.createDecorators)(),Ae=(0,d.memo)(Le),ke=(0,d.forwardRef)(De);let Ee;var xe=new WeakMap,we=new WeakMap,ye=new WeakMap,Se=new WeakMap,Ne=new WeakMap,Re=new WeakSet,Me=new WeakMap,Te=new WeakMap,_e=new WeakMap,Ce=new WeakMap,Ie=new WeakMap,Ye=new WeakMap,We=new WeakMap,je=new WeakMap;class Oe extends h.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Re),(0,i.A)(this,xe,(V(this),H(this))),(0,i.A)(this,we,($(this),K(this))),(0,i.A)(this,ye,(q(this),G(this))),(0,i.A)(this,Se,(Q(this),X(this))),(0,i.A)(this,Ne,(J(this),Z(this))),(0,i.A)(this,Me,(ne(this),()=>{(0,o.A)(Re,this,ee).emit()})),(0,i.A)(this,Te,ae(this)),(0,i.A)(this,_e,(re(this),()=>{(0,o.A)(Re,this,se).emit()})),(0,i.A)(this,Ce,oe(this)),(0,i.A)(this,Ie,(ue(this),()=>{(0,o.A)(Re,this,le).emit()})),(0,i.A)(this,Ye,de(this)),(0,i.A)(this,We,(he(this),()=>{(0,o.A)(Re,this,me).emit()})),(0,i.A)(this,je,(0,d.createRef)())}get taskId(){return(0,c.A)(xe,this)}set taskId(e){(0,l.A)(xe,this,e)}get task(){return(0,c.A)(we,this)}set task(e){(0,l.A)(we,this,e)}get jobs(){return(0,c.A)(ye,this)}set jobs(e){(0,l.A)(ye,this,e)}get goBackUrl(){return(0,c.A)(Se,this)}set goBackUrl(e){(0,l.A)(Se,this,e)}resumed(){var e;null===(e=(0,c.A)(je,this).current)||void 0===e||e.resumed()}render(){return m().createElement(ke,{taskId:this.taskId,jobs:this.jobs,task:this.task,goBackUrl:this.goBackUrl,onShare:(0,c.A)(Me,this),onPause:(0,c.A)(_e,this),onResume:(0,c.A)(Ie,this),onCancel:(0,c.A)(We,this),ref:(0,c.A)(je,this)})}}function De(e,t){var n;let{taskId:a,task:s,jobs:i,goBackUrl:r,onShare:o,onPause:l,onResume:c,onCancel:u}=e;const p=(0,d.useRef)(null),{task:h,jobs:b,plan:f,error:A,humanInputRef:x,resumedRef:C}=(0,R.S)(a),I=a?h:s,Y=a?b:i,W=a?f:null==s?void 0:s.plan,j=(0,M.B)(I,Y),O=null==j?void 0:j.nodes,V=null==j?void 0:j.edges,F=null==j?void 0:j.nav,H=null!==(n=null==I?void 0:I.title)&&void 0!==n?n:"",$=null==I?void 0:I.state,[K,q]=(0,d.useState)(null);(0,d.useImperativeHandle)(t,(()=>({resumed:()=>{var e;return null===(e=C.current)||void 0===e?void 0:e.call(C)}})),[C]);const G=(0,d.useRef)(!1);(0,d.useEffect)((()=>{const e=setTimeout((()=>{G.current=!0}),3e3);return()=>{clearTimeout(e)}}),[]);const Q=(0,d.useRef)(!1),X=(0,d.useCallback)(((e,t)=>G.current&&0!==t?(Q.current=!0,e.transition().duration(null!=t?t:300).ease((e=>e*(2-e))).on("end",(()=>{Q.current=!1}))):e),[]);(0,d.useEffect)((()=>{(0,g.getRuntime)().applyPageTitle(H)}),[H]),(0,d.useEffect)((()=>{A&&(0,g.handleHttpError)(A)}),[A]);const J=(0,d.useCallback)(((e,t)=>{var n;null===(n=x.current)||void 0===n||n.call(x,e,t)}),[x]),[Z,ee]=(0,d.useState)(null),te=(0,d.useCallback)(((e,t)=>{ee((n=>{if(!t){if(!n)return null;const t=new Map(n);return t.delete(e)?t:n}return n?new Map(n).set(e,t):new Map([[e,t]])}))}),[]),{sizeReady:ne,nodes:ae,edges:se}=(0,N.g)({rawNodes:O,rawEdges:V,state:$,sizeMap:Z}),{grabbing:ie,transform:re,transformRef:oe,zoomer:le}=(0,y.f)({rootRef:p,zoomable:ne,scrollable:ne,pannable:ne}),{centered:ce,setCentered:ue,reCenterRef:de}=(0,S.E)({nodes:ae,sizeReady:ne,zoomer:le,rootRef:p,selectTransition:X}),me=!D.QB.includes(null!=$?$:"working")&&2===ae.length,pe=(0,d.useMemo)((()=>new Set(se.map((e=>e.source)))),[se]),he=(0,d.useMemo)((()=>{if(!ne)return null;const e=[];for(const t of ae)pe.has(t.id)||e.push(t);return e.length>0?Math.max(...e.map((e=>e.view.y+e.view.height))):null}),[ae,pe,ne]),ge=(0,d.useRef)(null);(0,d.useEffect)((()=>{ge.current=he}),[he]);const be=(0,d.useRef)(!1);(0,d.useEffect)((()=>{const e=p.current;if(!e||null===he||be.current)return;const{offsetHeight:t}=e,n=oe.current,a=he*n.k+n.y,s=t-D.xX-a;s<0&&le.translateBy(X((0,k.A)(e),s>-100?100:s<-500?300:200),0,s/n.k)}),[he,oe,le,X]),(0,d.useEffect)((()=>{const e=ge.current,t=p.current;if(!t||null===e||Q.current)return;const{offsetHeight:n}=t,a=e*re.k+re.y,s=n-D.xX-a;be.current=s<0}),[re,le]);const fe=(0,d.useCallback)((()=>{de.current=!0,ue(!1)}),[de,ue]),ve=(0,d.useCallback)((e=>{le.scaleTo((0,k.A)(p.current),e)}),[le]),[ke,Ee]=(0,d.useState)();(0,d.useEffect)((()=>{if(!ne)return;const e=setTimeout((()=>{let e,t=1/0;for(const n of ae)if("instruction"===n.type){const a=n.view.y*re.k+re.y-D.RV;a>=0&&a<t&&(t=a,e=n.job.id)}Ee(e)}),100);return()=>{clearTimeout(e)}}),[ae,ne,re]);const xe=(0,d.useCallback)((e=>{let{nodeId:t,jobId:n,behavior:a,block:s}=e;const i=p.current,r=ae.filter((e=>{var a;return!(t&&e.id!==t||n&&(null===(a=e.job)||void 0===a?void 0:a.id)!==n)}));if(!i||0===r.length)return;const o=(0,E.o)(r.map((e=>e.view))),{x:l,y:c}=(0,B.D)(o,[i.offsetWidth,i.offsetHeight],[D.RV,D.kq,D.xX,D.bL],oe.current,s);(l||c)&&le.translateBy(X((0,k.A)(i),"instant"===a?0:void 0),l,c)}),[ae,X,oe,le]),[we,ye]=(0,d.useState)(null),Se=(0,d.useMemo)((()=>({humanInput:J,onShare:o,onPause:l,onResume:c,onCancel:u,onNodeResize:te,activeToolCallJobId:we,setActiveToolCallJobId:ye,setActiveNodeId:q})),[we,te,J,o,l,c,u]),Ne=(0,d.useMemo)((()=>we?null==Y?void 0:Y.find((e=>e.id===we)):null),[we,Y]),Re=(0,d.useCallback)((()=>{q(null)}),[]);return(0,d.useEffect)((()=>{const e=p.current;if(!e||Ne)return;const t=e=>{const t=(0,U.l)(e,{activeNodeId:K,nodes:ae});if(!t)return;const{action:n,node:a}=t;if("enter"===n){var s,i;if("job"!==a.type)return;const e="ask_human"===(null===(s=a.job.toolCall)||void 0===s?void 0:s.name),t="ask_human_confirming_plan"===(null===(i=a.job.toolCall)||void 0===i?void 0:i.name);if(e||t)return}e.preventDefault(),e.stopPropagation(),"enter"===n?ye(a.job.id):(q(a.id),"job"===a.type||"view"===a.type?xe({jobId:a.job.id,behavior:"smooth"}):xe({nodeId:a.id,behavior:"smooth"}))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[K,Ne,ae,xe]),m().createElement(P.Q.Provider,{value:Se},m().createElement("div",{className:v()(w.A.root,{[w.A.loading]:!I}),ref:p,style:{cursor:ie?"grabbing":"grab"},tabIndex:-1,onClick:Re},!I&&m().createElement("div",{className:w.A["loading-icon"]},m().createElement(L.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),m().createElement("div",{className:v()(w.A.canvas,{[w.A.ready]:ne&&ce}),style:{transform:`translate3d(${re.x}px, ${re.y}px, 0) scale(${re.k})`}},m().createElement("svg",{className:w.A.edges},se.map((e=>m().createElement("path",{className:w.A.edge,key:`${e.source}-${e.target}`,d:e.points.map(((e,t)=>{let{x:n,y:a}=e;return`${0===t?"M":"L"}${n},${a}`})).join(" ")})))),ae.map((e=>{var t,n,a;return m().createElement(Ae,{key:e.id,id:e.id,type:e.type,content:e.content,job:e.job,state:e.state,startTime:null==I?void 0:I.startTime,taskLoading:me,instructionLoading:"instruction"===e.type&&!pe.has(e.id)&&!D.QB.includes(null!==(t=e.state)&&void 0!==t?t:"working")&&!D.X4.includes(null!=$?$:"working"),edges:se,x:null===(n=e.view)||void 0===n?void 0:n.x,y:null===(a=e.view)||void 0===a?void 0:a.y,active:K===e.id})})))),m().createElement("div",{className:w.A.widgets},r&&m().createElement(L.EM,{className:w.A["go-back"],url:r},m().createElement(L.Bj,{lib:"fa",prefix:"fas",icon:"arrow-left-long"})),m().createElement("div",{className:w.A["nav-container"]},m().createElement("ul",{className:w.A.nav},null==F?void 0:F.map((e=>m().createElement("li",{key:e.id,className:v()(w.A["nav-item"],{[w.A.active]:ke===e.id})},m().createElement("a",{className:w.A["nav-link"],onClick:()=>{xe({jobId:e.id,block:"start"})}},m().createElement("span",{className:w.A["nav-link-text"]},e.title))))))),m().createElement(T.r,{plan:W,state:$}),m().createElement(_.l,{scale:re.k,onScaleChange:ve,onReCenter:fe})),Ne&&m().createElement(z.M,{job:Ne}))}function Le(e){let{id:t,type:n,state:a,job:s,content:i,startTime:r,taskLoading:o,instructionLoading:l,x:c,y:u,active:p}=e;const h=(0,d.useRef)(null),{onNodeResize:g,setActiveNodeId:b}=(0,d.useContext)(P.Q);(0,d.useEffect)((()=>{const e=h.current;if(!e)return;const n=new A.A((()=>{g(t,[e.offsetWidth,e.offsetHeight])}));return n.observe(e),()=>{n.disconnect(),g(t,null)}}),[t,g]),(0,d.useEffect)((()=>{const e=h.current;if(!e)return;const t=e=>{e.stopPropagation()};return e.addEventListener("mousedown",t),()=>{e.removeEventListener("mousedown",t)}}),[]);const f=(0,d.useCallback)((e=>{"start"!==n&&"instruction"!==n&&(b(t),e.stopPropagation())}),[t,b,n]);return m().createElement("div",{className:v()(w.A.node,{[w.A.ready]:null!=c&&null!=u}),ref:h,style:{left:c,top:u},onClick:f},"start"===n?m().createElement(C.H,null):"end"===n?m().createElement(j.s,{active:p}):"requirement"===n?m().createElement(I.O,{content:i,startTime:r,loading:o,active:p}):"instruction"===n?m().createElement(Y.L,{content:s.instruction,loading:l}):"view"===n?m().createElement(O.Y,{job:s,active:p}):m().createElement(W.W,{state:a,job:s,active:p}))}a=Oe,({e:[H,$,K,q,G,Q,X,J,Z,ee,te,ne,ae,se,ie,re,oe,le,ce,ue,de,me,pe,he,V],c:[Ee,F]}=(0,u.A)(a,[ge("ai-portal.cruise-canvas",{shadowOptions:!1})],[[be(),1,"taskId"],[be({attribute:!1}),1,"task"],[be({attribute:!1}),1,"jobs"],[be(),1,"goBackUrl"],[fe({type:"share"}),1,"shareEvent",e=>(0,c.A)(Ne,e),(e,t)=>(0,l.A)(Ne,e,t)],[fe({type:"pause"}),1,"pauseEvent",e=>(0,c.A)(Te,e),(e,t)=>(0,l.A)(Te,e,t)],[fe({type:"resume"}),1,"resumeEvent",e=>(0,c.A)(Ce,e),(e,t)=>(0,l.A)(Ce,e,t)],[fe({type:"cancel"}),1,"cancelEvent",e=>(0,c.A)(Ye,e),(e,t)=>(0,l.A)(Ye,e,t)],[ve(),2,"resumed"]],0,(e=>je.has((0,r.A)(e))),h.ReactNextElement)),F();var Pe=n(1451),ze=n(1030);let Be=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const Ue="bricks/ai-portal/chat-box",Ve={en:{[Be.ASK_ANY_THING]:"Ask anything",[Be.COMMON_TASKS]:"Common tasks"},zh:{[Be.ASK_ANY_THING]:"询问任何问题",[Be.COMMON_TASKS]:"常用任务"}},Fe=b.i18n.getFixedT(null,Ue),He=n.p+"images/af389fa6.svg";var $e,Ke=n(7008);let qe,Ge,Qe,Xe,Je,Ze,et,tt,nt,at,st,it,rt,ot,lt;(0,b.initializeI18n)(Ue,Ve);const ct=(0,h.wrapBrick)("eo-icon"),{defineElement:ut,property:dt,event:mt}=(0,p.createDecorators)();let pt;var ht=new WeakMap,gt=new WeakMap,bt=new WeakMap,ft=new WeakMap,vt=new WeakMap,At=new WeakMap,kt=new WeakSet,Et=new WeakMap;class xt extends h.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,kt),(0,i.A)(this,ht,Ge(this)),(0,i.A)(this,gt,(Qe(this),Xe(this))),(0,i.A)(this,bt,(Je(this),Ze(this))),(0,i.A)(this,ft,(et(this),tt(this))),(0,i.A)(this,vt,(nt(this),at(this))),(0,i.A)(this,At,(st(this),it(this))),(0,i.A)(this,Et,(lt(this),e=>{(0,o.A)(kt,this,rt).emit(e)}))}get disabled(){return(0,c.A)(ht,this)}set disabled(e){(0,l.A)(ht,this,e)}get placeholder(){return(0,c.A)(gt,this)}set placeholder(e){(0,l.A)(gt,this,e)}get autoFocus(){return(0,c.A)(bt,this)}set autoFocus(e){(0,l.A)(bt,this,e)}get suggestions(){return(0,c.A)(ft,this)}set suggestions(e){(0,l.A)(ft,this,e)}get suggestionsLabel(){return(0,c.A)(vt,this)}set suggestionsLabel(e){(0,l.A)(vt,this,e)}render(){return m().createElement(wt,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,suggestions:this.suggestions,suggestionsLabel:this.suggestionsLabel,onSubmit:(0,c.A)(Et,this)})}}function wt(e){let{disabled:t,placeholder:n,autoFocus:a,suggestions:s,suggestionsLabel:i,onSubmit:r}=e;const o=(0,d.useRef)(null),l=(0,d.useRef)(null),[c,u]=(0,d.useState)(""),p=(0,d.useRef)(""),h=(0,d.useCallback)((e=>{e.currentTarget.value&&(null==r||r(e.currentTarget.value))}),[r]),g=(0,d.useCallback)((e=>{p.current=e.target.value,u(e.target.value)}),[]),b=(0,d.useCallback)((()=>{null==r||r(p.current)}),[r]);(0,d.useEffect)((()=>{a&&Promise.resolve().then((()=>{var e;null===(e=l.current)||void 0===e||e.focus()}))}),[]);const f=(0,d.useMemo)((()=>null!=s&&s.length?(0,ze.chunk)(s,Math.max(2,Math.ceil(s.length/2))):[]),[s]),v=(0,d.useCallback)((e=>{p.current=e.content,u(e.content),setTimeout((()=>{var e;null===(e=l.current)||void 0===e||e.focus()}))}),[]);return m().createElement("div",{className:"root"},m().createElement("div",{className:"container",ref:o},m().createElement(Pe.e,{containerRef:o,ref:l,value:c,minRows:3,paddingSize:62,autoResize:!0,disabled:t,placeholder:null!=n?n:Fe(Be.ASK_ANY_THING),submitWhen:"enter-without-shift",onSubmit:h,onChange:g}),m().createElement("button",{className:"btn-send",disabled:!c,onClick:b},m().createElement(ct,{lib:"fa",prefix:"fas",icon:"arrow-up"}))),!(null==f||!f.length)&&m().createElement("div",{className:"suggestions"},m().createElement("div",{className:"heading"},m().createElement("img",{className:"icon",src:He,width:16,height:16}),m().createElement("span",null,null!=i?i:Fe(Be.COMMON_TASKS))),f.map(((e,t)=>m().createElement(yt,{key:t,suggestions:e,pixelPerSecond:10*(t+2),onSelect:v})))))}function yt(e){let{suggestions:t,pixelPerSecond:n,onSelect:a}=e;const s=(0,d.useRef)(null),i=(0,d.useRef)(null),[r,o]=(0,d.useState)(0);return(0,d.useEffect)((()=>{const e=s.current,t=i.current;if(!e||!t)return;let a,r,l,c,u=0;const d=(t.offsetWidth-7)/2+7;function m(e){r=e,void 0===l&&(l=e),void 0!==a&&(u+=e-a,a=void 0),o((e-l-u)/1e3*n%d),c=requestAnimationFrame(m)}c=requestAnimationFrame(m);const p=()=>{cancelAnimationFrame(c),a=r},h=()=>{c=requestAnimationFrame(m)};return e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",h),()=>{cancelAnimationFrame(c),e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",h)}}),[t,n]),m().createElement("div",{className:"carousel",ref:s},m().createElement("ul",{className:"list",ref:i,style:{transform:`translateX(${-r}px)`}},[...t,...t].map(((e,t)=>m().createElement("li",{key:t},m().createElement("div",{className:"item",onClick:()=>a(e),title:e.content},m().createElement("div",{className:"title"},e.title),m().createElement("div",{className:"content"},e.content)))))))}$e=xt,({e:[Ge,Qe,Xe,Je,Ze,et,tt,nt,at,st,it,rt,ot,lt],c:[pt,qe]}=(0,u.A)($e,[ut("ai-portal.chat-box",{styleTexts:[Ke.A]})],[[dt({type:Boolean}),1,"disabled"],[dt(),1,"placeholder"],[dt({type:Boolean}),1,"autoFocus"],[dt({attribute:!1}),1,"suggestions"],[dt(),1,"suggestionsLabel"],[mt({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(At,e),(e,t)=>(0,l.A)(At,e,t)]],0,(e=>Et.has((0,r.A)(e))),h.ReactNextElement)),qe();var St,Nt=n(2165);let Rt;const{defineElement:Mt}=(0,p.createDecorators)();let Tt;class _t extends h.ReactNextElement{render(){return m().createElement(Ct,null)}}function Ct(){return m().createElement("slot",null)}St=_t,[Tt,Rt]=(0,u.A)(St,[Mt("ai-portal.home-container",{styleTexts:[Nt.A]})],[],0,void 0,h.ReactNextElement).c,Rt();var It=n(1302),Yt=n.n(It);let Wt=function(e){return e.TODAY="TODAY",e.YESTERDAY="YESTERDAY",e.PREVIOUS_7_DAYS="PREVIOUS_7_DAYS",e.PREVIOUS_30_DAYS="PREVIOUS_30_DAYS",e}({});const jt="bricks/ai-portal/chat-history",Ot={en:{[Wt.TODAY]:"Today",[Wt.YESTERDAY]:"Yesterday",[Wt.PREVIOUS_7_DAYS]:"Previous 7 days",[Wt.PREVIOUS_30_DAYS]:"Previous 30 days"},zh:{[Wt.TODAY]:"今天",[Wt.YESTERDAY]:"昨天",[Wt.PREVIOUS_7_DAYS]:"过去7天",[Wt.PREVIOUS_30_DAYS]:"过去30天"}},Dt=b.i18n.getFixedT(null,jt);var Lt,Pt=n(1411);let zt,Bt,Ut,Vt,Ft,Ht,$t,Kt,qt;(0,b.initializeI18n)(jt,Ot);const Gt=(0,h.wrapBrick)("eo-icon"),Qt=(0,h.wrapBrick)("eo-link"),Xt=(0,h.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),{defineElement:Jt,property:Zt,event:en}=(0,p.createDecorators)();let tn;var nn=new WeakMap,an=new WeakMap,sn=new WeakMap,rn=new WeakSet,on=new WeakMap;class ln extends h.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,rn),(0,i.A)(this,nn,Bt(this)),(0,i.A)(this,an,(Ut(this),Vt(this))),(0,i.A)(this,sn,(Ft(this),Ht(this))),(0,i.A)(this,on,(qt(this),e=>{(0,o.A)(rn,this,$t).emit(e)}))}get list(){return(0,c.A)(nn,this)}set list(e){(0,l.A)(nn,this,e)}get actions(){return(0,c.A)(an,this)}set actions(e){(0,l.A)(an,this,e)}render(){return m().createElement(cn,{list:this.list,actions:this.actions,onActionClick:(0,c.A)(on,this)})}}function cn(e){let{list:t,actions:n,onActionClick:a}=e;const s=(0,d.useMemo)((()=>{const e=new Map,n=Yt()(),a=n.startOf("day"),s=a.clone().subtract(1,"day"),i=a.clone().subtract(7,"days"),r=a.clone().subtract(30,"days"),o=+a/1e3,l=+s/1e3,c=+i/1e3,u=+r/1e3,d=n.year();for(const n of null!=t?t:[]){let t;t=n.startTime>=o?Dt(Wt.TODAY):n.startTime>=l?Dt(Wt.YESTERDAY):n.startTime>=c?Dt(Wt.PREVIOUS_7_DAYS):n.startTime>=u?Dt(Wt.PREVIOUS_30_DAYS):n.startTime>=d?Yt()(1e3*n.startTime).format("MMMM"):Yt()(1e3*n.startTime).format("YYYY");let a=e.get(t);a||e.set(t,a={title:t,items:[]}),a.items.push(n)}return[...e.values()]}),[t]),[i,r]=(0,d.useState)(null);return t?m().createElement("ul",null,s.map((e=>m().createElement("li",{key:e.title,className:"group"},m().createElement("div",{className:"group-title"},e.title),m().createElement("ul",{className:"items"},e.items.map((e=>m().createElement("li",{key:e.id},m().createElement(Qt,{className:v()("item",{active:i===e.id}),url:e.url},m().createElement("div",{className:"item-title"},e.title),m().createElement(Xt,{className:"actions",actions:n,onActionClick:t=>{null==a||a({action:t.detail,item:e})},onVisibleChange:t=>{r(t.detail?e.id:null)}}),!D.QB.includes(e.state)&&m().createElement("div",{className:"working"})))))))))):m().createElement("div",{className:"loading"},m().createElement(Gt,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}))}Lt=ln,({e:[Bt,Ut,Vt,Ft,Ht,$t,Kt,qt],c:[tn,zt]}=(0,u.A)(Lt,[Jt("ai-portal.chat-history",{styleTexts:[Pt.A]})],[[Zt({attribute:!1}),1,"list"],[Zt({attribute:!1}),1,"actions"],[en({type:"action.click"}),1,"actionClick",e=>(0,c.A)(sn,e),(e,t)=>(0,l.A)(sn,e,t)]],0,(e=>on.has((0,r.A)(e))),h.ReactNextElement)),zt()},7008:(e,t,n)=>{n.d(t,{A:()=>m});var a=n(6758),s=n.n(a),i=n(935),r=n.n(i),o=n(62),l=n.n(o),c=new URL(n(1107),n.b),u=r()(s()),d=l()(c);u.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${d});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#2540ff;border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`,""]);const m=u.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=7301.9ad055ca.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7301.9ad055ca.js","mappings":"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","sources":["webpack:///./src/chat-history/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/chat-history/i18n.ts","webpack:///./src/chat-history/index.tsx","webpack:///./src/chat-box/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:#2540ff;margin:0 7px}.item:hover .working,\n.item.active .working{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;background-color:#fff;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport { select, type Selection } from \"d3-selection\";\nimport { mergeRects } from \"@next-shared/diagram\";\nimport { NS, locales } from \"./i18n.js\";\nimport styles from \"./styles.module.css\";\nimport { useZoom } from \"./useZoom.js\";\nimport type {\n SizeTuple,\n GraphNode,\n Job,\n RequirementGraphNode,\n JobGraphNode,\n TaskBaseDetail,\n GraphEdge,\n} from \"./interfaces.js\";\nimport { useAutoCenter } from \"./useAutoCenter.js\";\nimport { useLayout } from \"./useLayout.js\";\nimport { useTaskDetail } from \"./useTaskDetail.js\";\nimport { useTaskGraph } from \"./useTaskGraph.js\";\nimport { PlanProgress } from \"./PlanProgress/PlanProgress.js\";\nimport { ZoomBar } from \"./ZoomBar/ZoomBar.js\";\nimport { NodeStart } from \"./NodeStart/NodeStart.js\";\nimport { NodeRequirement } from \"./NodeRequirement/NodeRequirement.js\";\nimport { NodeInstruction } from \"./NodeInstruction/NodeInstruction.js\";\nimport { NodeJob } from \"./NodeJob/NodeJob.js\";\nimport { NodeEnd } from \"./NodeEnd/NodeEnd.js\";\nimport { NodeView } from \"./NodeView/NodeView.js\";\nimport {\n CANVAS_PADDING_BOTTOM,\n CANVAS_PADDING_LEFT,\n CANVAS_PADDING_RIGHT,\n CANVAS_PADDING_TOP,\n DONE_STATES,\n GENERAL_DONE_STATES,\n} from \"./constants.js\";\nimport { WrappedIcon, WrappedLink } from \"./bricks.js\";\nimport { CanvasContext } from \"./CanvasContext.js\";\nimport { ToolCallDetail } from \"./ToolCallDetail/ToolCallDetail.js\";\nimport { getScrollTo } from \"./utils/getScrollTo.js\";\nimport { handleKeyboardNav } from \"./utils/handleKeyboardNav.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst MemoizedNodeComponent = memo(NodeComponent);\n\nexport interface CruiseCanvasProps {\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n goBackUrl?: string;\n}\n\nconst CruiseCanvasComponent = forwardRef(LegacyCruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n @property()\n accessor goBackUrl: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"pause\" })\n accessor #pauseEvent!: EventEmitter<void>;\n\n #onPause = () => {\n this.#pauseEvent.emit();\n };\n\n @event({ type: \"resume\" })\n accessor #resumeEvent!: EventEmitter<void>;\n\n #onResume = () => {\n this.#resumeEvent.emit();\n };\n\n @event({ type: \"cancel\" })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #onCancel = () => {\n this.#cancelEvent.emit();\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n render() {\n return (\n <CruiseCanvasComponent\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n goBackUrl={this.goBackUrl}\n onShare={this.#onShare}\n onPause={this.#onPause}\n onResume={this.#onResume}\n onCancel={this.#onCancel}\n ref={this.#ref}\n />\n );\n }\n}\n\ninterface CruiseCanvasComponentProps extends CruiseCanvasProps {\n onShare: () => void;\n onPause: () => void;\n onResume: () => void;\n onCancel: () => void;\n}\n\ninterface ScrollToOptions {\n nodeId?: string;\n jobId?: string;\n\n /**\n * @default \"auto\"\n */\n behavior?: \"smooth\" | \"instant\" | \"auto\";\n\n /**\n * When set to \"start\", force scroll even if the node is fully visible.\n *\n * @default \"nearest\"\n */\n block?: \"start\" | \"nearest\";\n}\n\ninterface CruiseCanvasRef {\n resumed: () => void;\n}\n\nfunction LegacyCruiseCanvasComponent(\n {\n taskId,\n task: propTask,\n jobs: propJobs,\n goBackUrl,\n onShare,\n onPause,\n onResume,\n onCancel,\n }: CruiseCanvasComponentProps,\n ref: React.Ref<CruiseCanvasRef>\n) {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n task: _task,\n jobs: _jobs,\n plan: _plan,\n error,\n humanInputRef,\n resumedRef,\n } = useTaskDetail(taskId);\n const task = taskId ? _task : propTask;\n const jobs = taskId ? _jobs : propJobs;\n const plan = taskId ? _plan : propTask?.plan;\n const graph = useTaskGraph(task, jobs);\n const rawNodes = graph?.nodes;\n const rawEdges = graph?.edges;\n const nav = graph?.nav;\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const [activeNodeId, setActiveNodeId] = useState<string | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n resumed: () => resumedRef.current?.(),\n }),\n [resumedRef]\n );\n\n // Enable transition after 3 seconds to avoid initial flicker\n const transitionEnabledRef = useRef(false);\n useEffect(() => {\n const timer = setTimeout(() => {\n transitionEnabledRef.current = true;\n }, 3e3);\n return () => {\n clearTimeout(timer);\n };\n }, []);\n\n const transitionRef = useRef(false);\n const selectTransition = useCallback(\n (\n selection: Selection<HTMLDivElement, unknown, null, undefined>,\n duration?: number\n ) => {\n if (!transitionEnabledRef.current || duration === 0) {\n return selection;\n }\n transitionRef.current = true;\n return selection\n .transition()\n .duration(duration ?? 300)\n .ease((t) => t * (2 - t)) // Ease in-out\n .on(\"end\", () => {\n transitionRef.current = false;\n });\n },\n []\n );\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n useEffect(() => {\n if (error) {\n handleHttpError(error);\n }\n }, [error]);\n\n const humanInput = useCallback(\n (jobId: string, input: string) => {\n humanInputRef.current?.(jobId, input);\n },\n [humanInputRef]\n );\n\n const [sizeMap, setSizeMap] = useState<Map<string, SizeTuple> | null>(null);\n const onNodeResize = useCallback((id: string, size: SizeTuple | null) => {\n // Handle resize logic here\n setSizeMap((prev) => {\n if (!size) {\n if (!prev) {\n return null;\n }\n const newMap = new Map(prev);\n const deleted = newMap.delete(id);\n return deleted ? newMap : prev;\n }\n return prev ? new Map(prev).set(id, size) : new Map([[id, size]]);\n });\n }, []);\n\n const { sizeReady, nodes, edges } = useLayout({\n rawNodes,\n rawEdges,\n state: taskState,\n sizeMap,\n });\n\n const { grabbing, transform, transformRef, zoomer /* , scaleRange */ } =\n useZoom({\n rootRef,\n zoomable: sizeReady,\n scrollable: sizeReady,\n pannable: sizeReady,\n });\n\n const { centered, setCentered, reCenterRef } = useAutoCenter({\n nodes,\n sizeReady,\n zoomer,\n rootRef,\n selectTransition,\n });\n\n const taskDone = DONE_STATES.includes(taskState ?? \"working\");\n const taskLoading = !taskDone && nodes.length === 2;\n\n const nonLeafNodes = useMemo(() => {\n return new Set<string>(edges.map((edge) => edge.source));\n }, [edges]);\n\n const bottom = useMemo(() => {\n if (!sizeReady) {\n return null;\n }\n\n const leafNodes: GraphNode[] = [];\n for (const node of nodes) {\n if (!nonLeafNodes.has(node.id)) {\n leafNodes.push(node);\n }\n }\n if (leafNodes.length > 0) {\n const y1 = Math.max(\n ...leafNodes.map((node) => node.view!.y + node.view!.height)\n );\n return y1;\n }\n\n return null;\n }, [nodes, nonLeafNodes, sizeReady]);\n\n const bottomRef = useRef<number | null>(null);\n useEffect(() => {\n bottomRef.current = bottom;\n }, [bottom]);\n\n // Disable auto scroll when the user manually scrolled up\n const manualScrolledUpRef = useRef(false);\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || bottom === null || manualScrolledUpRef.current) {\n return;\n }\n const { offsetHeight } = root;\n const transform = transformRef.current;\n const transformedBottom = bottom * transform.k + transform.y;\n const diffY = offsetHeight - CANVAS_PADDING_BOTTOM - transformedBottom;\n if (diffY < 0) {\n // Make the latest node visible\n zoomer.translateBy(\n selectTransition(\n select(root),\n diffY > -100 ? 100 : diffY < -500 ? 300 : 200\n ),\n 0,\n diffY / transform.k\n );\n }\n }, [bottom, transformRef, zoomer, selectTransition]);\n\n // Detect if the user scrolled up manually\n useEffect(() => {\n const bottom = bottomRef.current;\n const root = rootRef.current;\n if (!root || bottom === null || transitionRef.current) {\n return;\n }\n const { offsetHeight } = root;\n const transformedBottom = bottom * transform.k + transform.y;\n\n const diffY = offsetHeight - CANVAS_PADDING_BOTTOM - transformedBottom;\n manualScrolledUpRef.current = diffY < 0;\n }, [transform, zoomer]);\n\n const handleReCenter = useCallback(() => {\n reCenterRef.current = true;\n setCentered(false);\n }, [reCenterRef, setCentered]);\n\n const handleScaleChange = useCallback(\n (scale: number) => {\n zoomer.scaleTo(select(rootRef.current!), scale);\n },\n [zoomer]\n );\n\n const [currentNavId, setCurrentNavId] = useState<string | undefined>();\n\n // Find the active nav item by node position against the canvas top\n useEffect(() => {\n if (!sizeReady) {\n return;\n }\n\n const timer = setTimeout(() => {\n let distance = Infinity;\n let navId: string | undefined;\n for (const node of nodes) {\n if (node.type === \"instruction\") {\n const y = node.view!.y * transform.k + transform.y;\n const diff = y - CANVAS_PADDING_TOP;\n if (diff >= 0 && diff < distance) {\n distance = diff;\n navId = node.job.id;\n }\n }\n }\n setCurrentNavId(navId);\n }, 100);\n\n return () => {\n clearTimeout(timer);\n };\n }, [nodes, sizeReady, transform]);\n\n const scrollTo = useCallback(\n ({ nodeId, jobId, behavior, block }: ScrollToOptions) => {\n /**\n * - When the node is fully visible, take no action.\n * - Otherwise, scroll to make it fully visible while make the scroll\n * distance as small as possible.\n * - Special cases:\n * - When the node is higher or wider than the viewport, scroll to\n * the top or left of the node.\n */\n const root = rootRef.current;\n const targets = nodes.filter((n) => {\n if (nodeId && n.id !== nodeId) {\n return false;\n }\n if (jobId && (n as JobGraphNode).job?.id !== jobId) {\n return false;\n }\n return true;\n });\n if (!root || targets.length === 0) {\n return;\n }\n const rect = mergeRects(targets.map((node) => node.view!));\n\n const { x, y } = getScrollTo(\n rect,\n [root.offsetWidth, root.offsetHeight],\n [\n CANVAS_PADDING_TOP,\n CANVAS_PADDING_RIGHT,\n CANVAS_PADDING_BOTTOM,\n CANVAS_PADDING_LEFT,\n ],\n transformRef.current,\n block\n );\n\n if (x || y) {\n zoomer.translateBy(\n selectTransition(\n select(root),\n behavior === \"instant\" ? 0 : undefined\n ),\n x,\n y\n );\n }\n },\n [nodes, selectTransition, transformRef, zoomer]\n );\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n\n const canvasContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onPause,\n onResume,\n onCancel,\n onNodeResize,\n activeToolCallJobId,\n setActiveToolCallJobId,\n setActiveNodeId,\n }),\n [\n activeToolCallJobId,\n onNodeResize,\n humanInput,\n onShare,\n onPause,\n onResume,\n onCancel,\n ]\n );\n\n const activeToolCallJob = useMemo(() => {\n if (!activeToolCallJobId) {\n return null;\n }\n return jobs?.find((job) => job.id === activeToolCallJobId);\n }, [activeToolCallJobId, jobs]);\n\n const handleRootClick = useCallback(() => {\n setActiveNodeId(null);\n }, []);\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || activeToolCallJob) {\n return;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n const keyboardAction = handleKeyboardNav(e, { activeNodeId, nodes });\n if (!keyboardAction) {\n return;\n }\n const { action, node } = keyboardAction;\n if (action === \"enter\") {\n if (node.type !== \"job\") {\n return;\n }\n const askUser = node.job.toolCall?.name === \"ask_human\";\n const askUserPlan =\n node.job.toolCall?.name === \"ask_human_confirming_plan\";\n if (askUser || askUserPlan) {\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n if (action === \"enter\") {\n setActiveToolCallJobId((node as JobGraphNode).job.id);\n } else {\n setActiveNodeId(node.id);\n if (node.type === \"job\" || node.type === \"view\") {\n scrollTo({\n jobId: node.job.id,\n behavior: \"smooth\",\n });\n } else {\n scrollTo({\n nodeId: node.id,\n behavior: \"smooth\",\n });\n }\n }\n };\n root.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n root.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [activeNodeId, activeToolCallJob, nodes, scrollTo]);\n\n return (\n <CanvasContext.Provider value={canvasContextValue}>\n <div\n className={classNames(styles.root, { [styles.loading]: !task })}\n ref={rootRef}\n style={{\n cursor: grabbing ? \"grabbing\" : \"grab\",\n }}\n tabIndex={-1}\n onClick={handleRootClick}\n >\n {!task && (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n <div\n className={classNames(styles.canvas, {\n [styles.ready]: sizeReady && centered,\n })}\n style={{\n transform: `translate3d(${transform.x}px, ${transform.y}px, 0) scale(${transform.k})`,\n }}\n >\n <svg className={styles.edges}>\n {edges.map((edge) => (\n <path\n className={styles.edge}\n key={`${edge.source}-${edge.target}`}\n d={edge\n .points!.map(\n ({ x, y }, i) => `${i === 0 ? \"M\" : \"L\"}${x},${y}`\n )\n .join(\" \")}\n />\n ))}\n </svg>\n {nodes.map((node) => (\n <MemoizedNodeComponent\n key={node.id}\n id={node.id}\n type={node.type}\n content={(node as RequirementGraphNode).content}\n job={(node as JobGraphNode).job}\n state={node.state}\n startTime={task?.startTime}\n taskLoading={taskLoading}\n instructionLoading={\n node.type === \"instruction\" &&\n !nonLeafNodes.has(node.id) &&\n !DONE_STATES.includes(node.state ?? \"working\") &&\n !GENERAL_DONE_STATES.includes(taskState ?? \"working\")\n }\n edges={edges}\n x={node.view?.x}\n y={node.view?.y}\n active={activeNodeId === node.id}\n />\n ))}\n </div>\n </div>\n <div className={styles.widgets}>\n {goBackUrl && (\n <WrappedLink className={styles[\"go-back\"]} url={goBackUrl}>\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-left-long\" />\n </WrappedLink>\n )}\n <div className={styles[\"nav-container\"]}>\n <ul className={styles.nav}>\n {nav?.map((item) => (\n <li\n key={item.id}\n className={classNames(styles[\"nav-item\"], {\n [styles.active]: currentNavId === item.id,\n })}\n >\n <a\n className={styles[\"nav-link\"]}\n onClick={() => {\n scrollTo({ jobId: item.id, block: \"start\" });\n }}\n >\n <span className={styles[\"nav-link-text\"]}>{item.title}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n <PlanProgress plan={plan} state={taskState} />\n <ZoomBar\n scale={transform.k}\n onScaleChange={handleScaleChange}\n onReCenter={handleReCenter}\n />\n </div>\n {activeToolCallJob && <ToolCallDetail job={activeToolCallJob} />}\n </CanvasContext.Provider>\n );\n}\n\ninterface NodeComponentProps {\n id: string;\n type: GraphNode[\"type\"];\n edges: GraphEdge[];\n content?: string;\n job?: Job;\n state?: string;\n startTime?: number;\n taskLoading?: boolean;\n instructionLoading?: boolean;\n x?: number;\n y?: number;\n active?: boolean;\n}\n\nfunction NodeComponent({\n id,\n type,\n state,\n job,\n content,\n startTime,\n taskLoading,\n instructionLoading,\n x,\n y,\n active,\n}: NodeComponentProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n const { onNodeResize, setActiveNodeId } = useContext(CanvasContext);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const observer = new ResizeObserver(() => {\n onNodeResize(id, [element.offsetWidth, element.offsetHeight]);\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n onNodeResize(id, null);\n };\n }, [id, onNodeResize]);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const handleMouseDown = (e: MouseEvent) => {\n e.stopPropagation();\n };\n element.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n element.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, []);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n if (type !== \"start\" && type !== \"instruction\") {\n setActiveNodeId(id);\n e.stopPropagation();\n }\n },\n [id, setActiveNodeId, type]\n );\n\n return (\n <div\n className={classNames(styles.node, {\n [styles.ready]: x != null && y != null,\n })}\n ref={nodeRef}\n style={{\n left: x,\n top: y,\n }}\n onClick={handleClick}\n >\n {type === \"start\" ? (\n <NodeStart />\n ) : type === \"end\" ? (\n <NodeEnd active={active} />\n ) : type === \"requirement\" ? (\n <NodeRequirement\n content={content}\n startTime={startTime}\n loading={taskLoading}\n active={active}\n />\n ) : type === \"instruction\" ? (\n <NodeInstruction\n content={job!.instruction}\n loading={instructionLoading}\n />\n ) : type === \"view\" ? (\n <NodeView job={job!} active={active} />\n ) : (\n <NodeJob state={state} job={job!} active={active} />\n )}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport { chunk } from \"lodash\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport tips from \"./images/tips.svg\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n suggestions?: Suggestion[];\n suggestionsLabel?: string;\n}\n\nexport interface Suggestion {\n title: string;\n content: string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\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 suggestions: Suggestion[] | undefined;\n\n @property()\n accessor suggestionsLabel: string | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n suggestions={this.suggestions}\n suggestionsLabel={this.suggestionsLabel}\n onSubmit={this.#handleMessageSubmit}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit?: (value: string) => void;\n}\n\nexport function ChatBoxComponent({\n disabled,\n placeholder,\n autoFocus,\n suggestions,\n suggestionsLabel,\n onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit?.(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n // istanbul ignore next: experimental\n const groupedSuggestions = useMemo(() => {\n if (!suggestions?.length) {\n return [];\n }\n return chunk(suggestions, Math.max(2, Math.ceil(suggestions.length / 2)));\n }, [suggestions]);\n\n // istanbul ignore next: experimental\n const handleSelectSuggestion = useCallback((suggestion: Suggestion) => {\n valueRef.current = suggestion.content;\n setValue(suggestion.content);\n setTimeout(() => {\n textareaRef.current?.focus();\n });\n }, []);\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={3}\n paddingSize={62}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {\n // istanbul ignore next: experimental\n !!groupedSuggestions?.length && (\n <div className=\"suggestions\">\n <div className=\"heading\">\n <img\n className=\"icon\"\n src={tips as unknown as string}\n width={16}\n height={16}\n />\n <span>{suggestionsLabel ?? t(K.COMMON_TASKS)}</span>\n </div>\n {groupedSuggestions.map((group, index) => (\n <SuggestionCarousel\n key={index}\n suggestions={group}\n pixelPerSecond={(index + 2) * 10}\n onSelect={handleSelectSuggestion}\n />\n ))}\n </div>\n )\n }\n </div>\n );\n}\n\nexport interface SuggestionCarouselProps {\n suggestions: Suggestion[];\n pixelPerSecond: number;\n onSelect: (suggestion: Suggestion) => void;\n}\n\n// istanbul ignore next: experimental\nfunction SuggestionCarousel({\n suggestions,\n pixelPerSecond,\n onSelect,\n}: SuggestionCarouselProps) {\n const carouselRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [x, setX] = useState(0);\n\n // Auto scroll suggestions infinitely.\n // Stop scrolling when mouse enter, and resume when mouse leave.\n useEffect(() => {\n const carousel = carouselRef.current;\n const list = listRef.current;\n\n if (!carousel || !list) {\n return;\n }\n\n let previousTimestamp: number | undefined;\n let currentTimestamp: number | undefined;\n let offsetTime = 0;\n let start: number | undefined;\n let timer: number;\n\n // We doubled the suggestions to make it scroll infinitely.\n const gap = 7;\n const listSingleWidth = (list.offsetWidth - gap) / 2;\n const mod = listSingleWidth + gap;\n\n function step(timestamp: number) {\n currentTimestamp = timestamp;\n if (start === undefined) {\n start = timestamp;\n }\n if (previousTimestamp !== undefined) {\n offsetTime += timestamp - previousTimestamp;\n previousTimestamp = undefined;\n }\n const elapsed = timestamp - start - offsetTime;\n setX(((elapsed / 1000) * pixelPerSecond) % mod);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n const onMouseEnter = () => {\n cancelAnimationFrame(timer);\n previousTimestamp = currentTimestamp;\n };\n const onMouseLeave = () => {\n timer = requestAnimationFrame(step);\n };\n\n carousel.addEventListener(\"mouseenter\", onMouseEnter);\n carousel.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n cancelAnimationFrame(timer);\n carousel.removeEventListener(\"mouseenter\", onMouseEnter);\n carousel.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [suggestions, pixelPerSecond]);\n\n return (\n <div className=\"carousel\" ref={carouselRef}>\n <ul\n className=\"list\"\n ref={listRef}\n style={{ transform: `translateX(${-x}px)` }}\n >\n {[...suggestions, ...suggestions].map((item, index) => (\n <li key={index}>\n <div\n className=\"item\"\n onClick={() => onSelect(item)}\n title={item.content}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"content\">{item.content}</div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n}\n\nconst en: Locale = {\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n};\n\nconst zh: Locale = {\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-history\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// istanbul ignore file: experimental\nimport React, { useMemo, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport moment from \"moment\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport classNames from \"classnames\";\nimport { DONE_STATES } from \"../cruise-canvas/constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatHistoryProps {\n list?: HistoryItem[];\n actions?: ActionType[];\n}\n\nexport interface HistoryItem {\n id: string;\n url: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\n/**\n * 构件 `ai-portal.chat-history`\n */\nexport\n@defineElement(\"ai-portal.chat-history\", {\n styleTexts: [styleText],\n})\nclass ChatHistory extends ReactNextElement implements ChatHistoryProps {\n @property({ attribute: false })\n accessor list: HistoryItem[] | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n render() {\n return (\n <ChatHistoryComponent\n list={this.list}\n actions={this.actions}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\nexport interface ChatHistoryComponentProps extends ChatHistoryProps {\n onActionClick?: (detail: ActionClickDetail) => void;\n}\n\ninterface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport function ChatHistoryComponent({\n list,\n actions,\n onActionClick,\n}: ChatHistoryComponentProps) {\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.year();\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n );\n }\n\n return (\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n active: actionsVisible === item.id,\n })}\n url={item.url}\n >\n <div className=\"item-title\">{item.title}</div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick?.({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#2540ff;border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","MemoizedNodeComponent","memo","NodeComponent","CruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_CruiseCanvas_brand","WeakSet","_onShare","_F","_onPause","_G","_onResume","_H","_onCancel","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_goBackUrl","_init_extra_goBackUrl","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_pauseEvent","_init_extra_pauseEvent","_get_pauseEvent","_init_resumeEvent","_init_extra_resumeEvent","_get_resumeEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_cancelEvent","createRef","taskId","_classPrivateFieldGet","v","_classPrivateFieldSet","task","jobs","goBackUrl","resumed","_classPrivateFieldGet2","current","render","React","onShare","onPause","onResume","onCancel","ref","_ref2","_task$title","propTask","propJobs","rootRef","useRef","_task","_jobs","plan","_plan","error","humanInputRef","resumedRef","useTaskDetail","graph","useTaskGraph","rawNodes","nodes","rawEdges","edges","nav","pageTitle","title","taskState","state","activeNodeId","setActiveNodeId","useState","useImperativeHandle","_resumedRef$current","call","transitionEnabledRef","useEffect","timer","setTimeout","clearTimeout","transitionRef","selectTransition","useCallback","selection","duration","transition","ease","t","on","getRuntime","applyPageTitle","handleHttpError","humanInput","jobId","input","_humanInputRef$curren","sizeMap","setSizeMap","onNodeResize","size","prev","newMap","Map","delete","set","sizeReady","useLayout","grabbing","transform","transformRef","zoomer","useZoom","zoomable","scrollable","pannable","centered","setCentered","reCenterRef","useAutoCenter","taskLoading","DONE_STATES","includes","length","nonLeafNodes","useMemo","Set","map","edge","source","bottom","leafNodes","node","has","Math","max","view","y","height","bottomRef","manualScrolledUpRef","root","offsetHeight","transformedBottom","k","diffY","CANVAS_PADDING_BOTTOM","translateBy","select","handleReCenter","handleScaleChange","scale","scaleTo","currentNavId","setCurrentNavId","navId","distance","Infinity","type","diff","CANVAS_PADDING_TOP","job","scrollTo","_ref3","nodeId","behavior","block","targets","filter","n","_job","rect","mergeRects","x","getScrollTo","offsetWidth","CANVAS_PADDING_RIGHT","CANVAS_PADDING_LEFT","undefined","activeToolCallJobId","setActiveToolCallJobId","canvasContextValue","activeToolCallJob","find","handleRootClick","handleKeyDown","e","keyboardAction","handleKeyboardNav","action","_node$job$toolCall","_node$job$toolCall2","askUser","toolCall","name","askUserPlan","preventDefault","stopPropagation","addEventListener","removeEventListener","CanvasContext","Provider","value","className","classNames","styles","loading","style","cursor","tabIndex","onClick","WrappedIcon","lib","theme","icon","spinning","canvas","ready","key","target","d","points","_ref4","i","join","_node$state","_node$view","_node$view2","content","startTime","instructionLoading","GENERAL_DONE_STATES","active","widgets","WrappedLink","url","prefix","item","PlanProgress","ZoomBar","onScaleChange","onReCenter","ToolCallDetail","_ref5","nodeRef","useContext","element","observer","ResizeObserver","observe","disconnect","handleMouseDown","handleClick","left","top","NodeStart","NodeEnd","NodeRequirement","NodeInstruction","instruction","NodeView","NodeJob","_CruiseCanvas2","_set_shareEvent","_set_pauseEvent","_set_resumeEvent","_set_cancelEvent","c","_initClass","_applyDecs","shadowOptions","attribute","o","_","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","i18n","getFixedT","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_suggestions","_init_extra_suggestions","_init_suggestionsLabel","_init_extra_suggestionsLabel","_init_messageSubmit","_init_extra_messageSubmit","_get_messageSubmit","disabled","placeholder","autoFocus","suggestions","suggestionsLabel","ChatBoxComponent","onSubmit","containerRef","textareaRef","setValue","valueRef","handleSubmit","currentTarget","handleChange","handleSubmitClick","Promise","resolve","then","_textareaRef$current","focus","groupedSuggestions","chunk","ceil","handleSelectSuggestion","suggestion","_textareaRef$current2","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","src","tips","width","group","index","SuggestionCarousel","pixelPerSecond","onSelect","carouselRef","listRef","setX","carousel","list","previousTimestamp","currentTimestamp","start","offsetTime","mod","step","timestamp","requestAnimationFrame","onMouseEnter","cancelAnimationFrame","onMouseLeave","_ChatBox2","_set_messageSubmit","styleTexts","styleText","Boolean","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","WrappedMiniActions","onActionClick","onVisibleChange","_ChatHistory","_ChatHistory_brand","_handleActionClick","ChatHistory","_init_list","_init_extra_list","_init_actions","_init_extra_actions","_init_actionClick","_init_extra_actionClick","detail","_get_actionClick","actions","ChatHistoryComponent","groups","groupMap","now","moment","startOfDay","startOf","yesterday","clone","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","year","groupKey","format","get","items","values","actionsVisible","setActionsVisible","_ChatHistory2","_set_actionClick"],"sourceRoot":""}
|