@next-bricks/ai-portal 0.1.0 → 0.1.2
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 +1 -1
- package/dist/chunks/{3458.90f259f4.js → 1550.b4a46d30.js} +3 -3
- package/dist/chunks/1550.b4a46d30.js.map +1 -0
- package/dist/chunks/{1889.e5637ffa.js → 1889.d6185164.js} +2 -2
- package/dist/chunks/{1889.e5637ffa.js.map → 1889.d6185164.js.map} +1 -1
- package/dist/chunks/2259.63e2454f.js +3 -0
- package/dist/chunks/2259.63e2454f.js.map +1 -0
- package/dist/chunks/2569.e4658458.js +2 -0
- package/dist/chunks/2569.e4658458.js.map +1 -0
- package/dist/chunks/{3171.33dbd1c2.js → 3171.dbc33a51.js} +2 -2
- package/dist/chunks/{3171.33dbd1c2.js.map → 3171.dbc33a51.js.map} +1 -1
- package/dist/chunks/{5105.e769a484.js → 4837.78431856.js} +2 -2
- package/dist/chunks/4837.78431856.js.map +1 -0
- package/dist/chunks/{5552.53db1092.js → 5552.517eedc2.js} +2 -2
- package/dist/chunks/{5552.53db1092.js.map → 5552.517eedc2.js.map} +1 -1
- package/dist/chunks/7039.74886564.js +2 -0
- package/dist/chunks/7039.74886564.js.map +1 -0
- package/dist/chunks/{7486.d3328a25.js → 7218.4ed3eab4.js} +2 -2
- package/dist/chunks/7218.4ed3eab4.js.map +1 -0
- package/dist/chunks/9140.9370c1d8.js +3 -0
- package/dist/chunks/9140.9370c1d8.js.map +1 -0
- package/dist/chunks/{chat-box.1ad19f84.js → chat-box.13de41ba.js} +2 -2
- package/dist/chunks/{chat-box.1ad19f84.js.map → chat-box.13de41ba.js.map} +1 -1
- package/dist/chunks/cruise-canvas.9b109fa0.js +2 -0
- package/dist/chunks/cruise-canvas.9b109fa0.js.map +1 -0
- package/dist/chunks/{main.c636a19a.js → main.b03201e6.js} +2 -2
- package/dist/chunks/{main.c636a19a.js.map → main.b03201e6.js.map} +1 -1
- package/dist/images/9f5ff403.png +0 -0
- package/dist/{index.bd9bab76.js → index.3c536b70.js} +2 -2
- package/dist/{index.bd9bab76.js.map → index.3c536b70.js.map} +1 -1
- package/dist-types/cruise-canvas/constants.d.ts +3 -0
- package/dist-types/cruise-canvas/interfaces.d.ts +1 -1
- package/package.json +2 -2
- package/dist/chunks/2259.fc89bbe1.js +0 -3
- package/dist/chunks/2259.fc89bbe1.js.map +0 -1
- package/dist/chunks/2569.af96d40a.js +0 -2
- package/dist/chunks/2569.af96d40a.js.map +0 -1
- package/dist/chunks/3458.90f259f4.js.map +0 -1
- package/dist/chunks/4507.5ef68765.js +0 -3
- package/dist/chunks/4507.5ef68765.js.map +0 -1
- package/dist/chunks/5105.e769a484.js.map +0 -1
- package/dist/chunks/7039.5503f3d9.js +0 -2
- package/dist/chunks/7039.5503f3d9.js.map +0 -1
- package/dist/chunks/7486.d3328a25.js.map +0 -1
- package/dist/chunks/cruise-canvas.a760429c.js +0 -2
- package/dist/chunks/cruise-canvas.a760429c.js.map +0 -1
- package/dist/images/e7d89ec3.png +0 -0
- /package/dist/chunks/{3458.90f259f4.js.LICENSE.txt → 1550.b4a46d30.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{2259.fc89bbe1.js.LICENSE.txt → 2259.63e2454f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{4507.5ef68765.js.LICENSE.txt → 9140.9370c1d8.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/5105.e769a484.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([[7039],{2277:(e,t,n)=>{var a,s=n(4635),r=n(918),o=n(6902),i=n(5536),l=n(6121),c=n(829),u=n(2740),d=n(8769),h=n.n(d),p=n(6192),m=n(9859),b=n(5050),f=(n(6477),n(1147)),g=n(3373),v=n.n(g),k=n(9126),A=n(7566),E=n(79),x=n(2464),w=n(8231),y=n(6494),_=n(7642),R=n(2773),C=n(9533),N=n(3153),I=n(4999),S=n(7954),W=n(4388),z=n(6938),M=n(5391),H=n(9295),j=n(6854);let L,$,T,O,P,B,D,F,q,Q,U;(0,f.initializeI18n)(E.NS,E.I);const{defineElement:X,property:G,event:J}=(0,p.createDecorators)(),K=(0,d.memo)(oe);let V;var Y=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ne=new WeakSet,ae=new WeakMap;class se extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,ne),(0,r.A)(this,Y,$(this)),(0,r.A)(this,Z,(T(this),O(this))),(0,r.A)(this,ee,(P(this),B(this))),(0,r.A)(this,te,(D(this),F(this))),(0,r.A)(this,ae,(U(this),()=>{(0,i.A)(ne,this,q).emit()}))}get taskId(){return(0,c.A)(Y,this)}set taskId(e){(0,l.A)(Y,this,e)}get task(){return(0,c.A)(Z,this)}set task(e){(0,l.A)(Z,this,e)}get jobs(){return(0,c.A)(ee,this)}set jobs(e){(0,l.A)(ee,this,e)}render(){return h().createElement(re,{taskId:this.taskId,jobs:this.jobs,task:this.task,onShare:(0,c.A)(ae,this)})}}function re(e){var t;let{taskId:n,task:a,jobs:s,onShare:r}=e;const o=(0,d.useRef)(null),{task:i,jobs:l,plan:c,error:u,humanInputRef:p}=(0,R.S)(n),m=n?i:a,f=n?l:null!=s?s:[],g=n?c:null==a?void 0:a.plan,k=(0,C.B)(m,f),E=null==k?void 0:k.nodes,S=null==k?void 0:k.edges;(0,d.useEffect)((()=>{u&&(0,b.handleHttpError)(u)}),[u]);const W=(0,d.useCallback)(((e,t)=>{var n;null===(n=p.current)||void 0===n||n.call(p,e,t)}),[p]),[z,M]=(0,d.useState)(null),H=(0,d.useCallback)(((e,t)=>{M((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:L,nodes:$,edges:T}=(0,_.g)({rawNodes:E,rawEdges:S,state:null==m?void 0:m.state,sizeMap:z}),{grabbing:O,transform:P,transformRef:B,zoomer:D}=(0,w.f)({rootRef:o,zoomable:L,scrollable:L,pannable:L}),{centered:F,setCentered:q,reCenterRef:Q}=(0,y.E)({nodes:$,sizeReady:L,zoomer:D,rootRef:o}),U=!j.QB.includes(null!==(t=null==m?void 0:m.state)&&void 0!==t?t:"working")&&2===$.length,X=(0,d.useMemo)((()=>new Set(T.map((e=>e.source)))),[T]),G=(0,d.useMemo)((()=>{if(!L)return null;const e=[];for(const t of $)X.has(t.id)||e.push(t);return e.length>0?Math.max(...e.map((e=>e.view.y+e.view.height))):null}),[$,X,L]);(0,d.useEffect)((()=>{const e=o.current;if(!e||null===G)return;const{offsetHeight:t}=e,n=B.current,a=G*n.k+n.y,s=t-j.xX-a;s<0&&D.translateBy((0,A.A)(o.current),0,s)}),[G,B,D]);const J=(0,d.useCallback)((()=>{Q.current=!0,q(!1)}),[Q,q]),V=(0,d.useCallback)((e=>{D.scaleTo((0,A.A)(o.current),e)}),[D]);return h().createElement(h().Fragment,null,h().createElement("div",{className:x.A.root,ref:o,style:{cursor:O?"grabbing":"grab"}},h().createElement("div",{className:v()(x.A.canvas,{[x.A.ready]:L&&F}),style:{transform:`translate3d(${P.x}px, ${P.y}px, 0) scale(${P.k})`}},h().createElement("svg",{className:x.A.edges},T.map((e=>h().createElement("path",{className:x.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(" ")})))),$.map((e=>{var t,n;return h().createElement(K,{key:e.id,id:e.id,type:e.type,content:e.content,job:e.job,state:e.state,startTime:null==m?void 0:m.startTime,taskLoading:U,instructionLoading:"instruction"===e.type&&!X.has(e.id),edges:T,x:null===(t=e.view)||void 0===t?void 0:t.x,y:null===(n=e.view)||void 0===n?void 0:n.y,onResize:H,humanInput:W,onShare:r})})))),h().createElement("div",{className:x.A.widgets},h().createElement(N.r,{plan:g}),h().createElement(I.l,{scale:P.k,onScaleChange:V,onReCenter:J})))}function oe(e){let{id:t,type:n,state:a,job:s,content:r,startTime:o,taskLoading:i,instructionLoading:l,x:c,y:u,onResize:p,humanInput:m,onShare:b}=e;const f=(0,d.useRef)(null);return(0,d.useEffect)((()=>{const e=f.current;if(!e)return;const n=new k.A((()=>{p(t,[e.offsetWidth,e.offsetHeight])}));return n.observe(e),()=>{n.disconnect(),p(t,null)}}),[t,p]),(0,d.useEffect)((()=>{const e=f.current;if(!e)return;const t=e=>{e.stopPropagation()};return e.addEventListener("mousedown",t),()=>{e.removeEventListener("mousedown",t)}}),[]),h().createElement("div",{className:v()(x.A.node,{[x.A.ready]:null!=c&&null!=u}),ref:f,style:{left:c,top:u}},"start"===n?h().createElement(S.H,null):"end"===n?h().createElement(H.s,{onShare:b}):"requirement"===n?h().createElement(W.O,{content:r,startTime:o,loading:i}):"instruction"===n?h().createElement(z.L,{content:s.instruction,loading:l}):"job"===n?h().createElement(M.W,{state:a,job:s,humanInput:m}):h().createElement("div",{className:`${x.A["node-default"]} ${x.A["size-medium"]}`},`Unknown job type: "${n}"`))}a=se,({e:[$,T,O,P,B,D,F,q,Q,U],c:[V,L]}=(0,u.A)(a,[X("ai-portal.cruise-canvas",{shadowOptions:!1})],[[G(),1,"taskId"],[G({attribute:!1}),1,"task"],[G({attribute:!1}),1,"jobs"],[J({type:"share"}),1,"shareEvent",e=>(0,c.A)(te,e),(e,t)=>(0,l.A)(te,e,t)]],0,(e=>ae.has((0,o.A)(e))),m.ReactNextElement)),L();var ie=n(1451);let le=function(e){return e.HOW_CAN_I_HELP="HOW_CAN_I_HELP",e}({});const ce="bricks/ai-portal/chat-box",ue={en:{[le.HOW_CAN_I_HELP]:"How can I help?"},zh:{[le.HOW_CAN_I_HELP]:"有什么可以帮您的?"}},de=f.i18n.getFixedT(null,ce);var he,pe=n(7008);let me,be,fe,ge,ve,ke,Ae;(0,f.initializeI18n)(ce,ue);const Ee=(0,m.wrapBrick)("eo-button"),xe={lib:"fa",prefix:"fas",icon:"arrow-up"},{defineElement:we,property:ye,event:_e}=(0,p.createDecorators)();let Re;var Ce=new WeakMap,Ne=new WeakMap,Ie=new WeakSet,Se=new WeakMap;class We extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Ie),(0,r.A)(this,Ce,be(this)),(0,r.A)(this,Ne,(fe(this),ge(this))),(0,r.A)(this,Se,(Ae(this),e=>{(0,i.A)(Ie,this,ve).emit(e)}))}get disabled(){return(0,c.A)(Ce,this)}set disabled(e){(0,l.A)(Ce,this,e)}render(){return h().createElement(ze,{disabled:this.disabled,onSubmit:(0,c.A)(Se,this)})}}function ze(e){let{disabled:t,onSubmit:n}=e;const a=(0,d.useRef)(null),s=(0,d.useRef)(""),r=(0,d.useCallback)((e=>{null==n||n(e.currentTarget.value)}),[n]),o=(0,d.useCallback)((e=>{s.current=e.target.value}),[]),i=(0,d.useCallback)((()=>{null==n||n(s.current)}),[n]);return h().createElement("div",{className:"container",ref:a},h().createElement(ie.e,{containerRef:a,minRows:5,paddingSize:24,autoResize:!0,disabled:t,placeholder:de(le.HOW_CAN_I_HELP),submitWhen:"enter-without-shift",onSubmit:r,onChange:o}),h().createElement(Ee,{className:"btn-send",shape:"circle",icon:xe,disabled:t,onClick:i}))}he=We,({e:[be,fe,ge,ve,ke,Ae],c:[Re,me]}=(0,u.A)(he,[we("ai-portal.chat-box",{styleTexts:[pe.A]})],[[ye({type:Boolean}),1,"disabled"],[_e({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(Ne,e),(e,t)=>(0,l.A)(Ne,e,t)]],0,(e=>Se.has((0,o.A)(e))),m.ReactNextElement)),me()},7008:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(6758),s=n.n(a),r=n(935),o=n.n(r)()(s());o.push([e.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative}textarea{display:block;width:100%;padding:12px 18px;color:var(--antd-input-color);background:var(--antd-input-bg);box-sizing:border-box;border-radius:1em;border:1px solid var(--antd-input-border-color);font-size:14px;line-height:22px;height:32px}textarea:not(:disabled):hover{border:1px solid var(--antd-input-hover-border-color)}textarea:not(:disabled):focus{border:1px solid var(--antd-input-focus-border-color);outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}textarea::placeholder{color:var(--antd-input-placeholder-color)}.btn-send{position:absolute;bottom:1em;right:1em}",""]);const i=o.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=7039.5503f3d9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7039.5503f3d9.js","mappings":"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","sources":["webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/chat-box/styles.shadow.css"],"sourcesContent":["// istanbul ignore file: experimental\nimport React, {\n memo,\n useCallback,\n useEffect,\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 { 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 } from \"d3-selection\";\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 { CANVAS_PADDING_BOTTOM, DONE_STATES } from \"./constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst MemoizedNodeComponent = memo(NodeComponent);\n\nexport interface CruiseCanvasProps {\n taskId: string | undefined;\n task: TaskBaseDetail | undefined;\n jobs: Job[] | undefined;\n}\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 @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n render() {\n return (\n <CruiseCanvasComponent\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n onShare={this.#onShare}\n />\n );\n }\n}\n\nexport interface CruiseCanvasComponentProps extends CruiseCanvasProps {\n onShare?: () => void;\n}\n\nexport function CruiseCanvasComponent({\n taskId,\n task: propTask,\n jobs: propJobs,\n onShare,\n}: CruiseCanvasComponentProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n task: _task,\n jobs: _jobs,\n plan: _plan,\n error,\n humanInputRef,\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\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 handleNodeResize = 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: task?.state,\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 });\n\n const taskDone = DONE_STATES.includes(task?.state ?? \"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 useEffect(() => {\n const root = rootRef.current;\n if (!root || bottom === null) {\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(select(rootRef.current!), 0, diffY);\n }\n }, [bottom, transformRef, 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 return (\n <>\n <div\n className={styles.root}\n ref={rootRef}\n style={{\n cursor: grabbing ? \"grabbing\" : \"grab\",\n }}\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\" && !nonLeafNodes.has(node.id)\n }\n edges={edges}\n x={node.view?.x}\n y={node.view?.y}\n onResize={handleNodeResize}\n humanInput={humanInput}\n onShare={onShare}\n />\n ))}\n </div>\n </div>\n <div className={styles.widgets}>\n <PlanProgress plan={plan} />\n <ZoomBar\n scale={transform.k}\n onScaleChange={handleScaleChange}\n onReCenter={handleReCenter}\n />\n </div>\n </>\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 onResize: (id: string, size: SizeTuple | null) => void;\n humanInput?: (jobId: string, input: string) => void;\n onShare?: () => void;\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 onResize,\n humanInput,\n onShare,\n}: NodeComponentProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const observer = new ResizeObserver(() => {\n onResize(id, [element.offsetWidth, element.offsetHeight]);\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n onResize(id, null);\n };\n }, [id, onResize]);\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 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 >\n {type === \"start\" ? (\n <NodeStart />\n ) : type === \"end\" ? (\n <NodeEnd onShare={onShare} />\n ) : type === \"requirement\" ? (\n <NodeRequirement\n content={content}\n startTime={startTime}\n loading={taskLoading}\n />\n ) : type === \"instruction\" ? (\n <NodeInstruction\n content={job!.instruction}\n loading={instructionLoading}\n />\n ) : type === \"job\" ? (\n <NodeJob state={state} job={job!} humanInput={humanInput} />\n ) : (\n <div className={`${styles[\"node-default\"]} ${styles[\"size-medium\"]}`}>\n {`Unknown job type: \"${type}\"`}\n </div>\n )}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n HOW_CAN_I_HELP = \"HOW_CAN_I_HELP\",\n}\n\nconst en: Locale = {\n [K.HOW_CAN_I_HELP]: \"How can I help?\",\n};\n\nconst zh: Locale = {\n [K.HOW_CAN_I_HELP]: \"有什么可以帮您的?\",\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, { useCallback, useRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { TextareaAutoResize } from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst SEND_ICON: ButtonProps[\"icon\"] = {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-up\",\n};\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\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 @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 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 onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onSubmit?.(e.currentTarget.value);\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\n\n return (\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n minRows={5}\n paddingSize={24}\n autoResize\n disabled={disabled}\n placeholder={t(K.HOW_CAN_I_HELP)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <WrappedButton\n className=\"btn-send\"\n shape=\"circle\"\n icon={SEND_ICON}\n disabled={disabled}\n onClick={handleSubmitClick}\n />\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative}textarea{display:block;width:100%;padding:12px 18px;color:var(--antd-input-color);background:var(--antd-input-bg);box-sizing:border-box;border-radius:1em;border:1px solid var(--antd-input-border-color);font-size:14px;line-height:22px;height:32px}textarea:not(:disabled):hover{border:1px solid var(--antd-input-hover-border-color)}textarea:not(:disabled):focus{border:1px solid var(--antd-input-focus-border-color);outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}textarea::placeholder{color:var(--antd-input-placeholder-color)}.btn-send{position:absolute;bottom:1em;right:1em}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["initializeI18n","NS","locales","defineElement","property","event","createDecorators","MemoizedNodeComponent","memo","NodeComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_CruiseCanvas_brand","WeakSet","_onShare","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","taskId","_classPrivateFieldGet","v","_classPrivateFieldSet","task","jobs","render","React","CruiseCanvasComponent","onShare","_ref","_task$state","propTask","propJobs","rootRef","useRef","_task","_jobs","plan","_plan","error","humanInputRef","useTaskDetail","graph","useTaskGraph","rawNodes","nodes","rawEdges","edges","useEffect","handleHttpError","humanInput","useCallback","jobId","input","_humanInputRef$curren","current","call","sizeMap","setSizeMap","useState","handleNodeResize","id","size","prev","newMap","Map","delete","set","sizeReady","useLayout","state","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","push","Math","max","view","y","height","root","offsetHeight","transformedBottom","k","diffY","CANVAS_PADDING_BOTTOM","translateBy","select","handleReCenter","handleScaleChange","scale","scaleTo","className","styles","ref","style","cursor","classNames","canvas","ready","x","key","target","d","points","_ref2","i","join","_node$view","_node$view2","type","content","job","startTime","instructionLoading","onResize","widgets","PlanProgress","ZoomBar","onScaleChange","onReCenter","_ref3","nodeRef","element","observer","ResizeObserver","offsetWidth","observe","disconnect","handleMouseDown","e","stopPropagation","addEventListener","removeEventListener","left","top","NodeStart","NodeEnd","NodeRequirement","loading","NodeInstruction","instruction","NodeJob","_CruiseCanvas2","_set_shareEvent","c","_initClass","_applyDecs","shadowOptions","attribute","o","_","_checkInRHS","K","en","HOW_CAN_I_HELP","zh","t","i18n","getFixedT","WrappedButton","wrapBrick","SEND_ICON","lib","prefix","icon","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","disabled","ChatBoxComponent","onSubmit","containerRef","valueRef","handleSubmit","currentTarget","handleChange","handleSubmitClick","TextareaAutoResize","minRows","paddingSize","autoResize","placeholder","submitWhen","onChange","shape","onClick","_ChatBox2","_set_messageSubmit","styleTexts","styleText","Boolean","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7486.d3328a25.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([[2267],{6185:(e,t,n)=>{n.r(t),n.d(t,{CruiseCanvas:()=>V,CruiseCanvasComponent:()=>re});var s,a=n(4635),r=n(918),o=n(6902),l=n(5536),i=n(6121),u=n(829),c=n(2740),d=n(8769),m=n.n(d),h=n(6192),p=n(9859),f=n(5050),k=(n(6477),n(1147)),v=n(3373),g=n.n(v),b=n(9126),A=n(7566),E=n(79),w=n(2464),y=n(8231),C=n(6494),j=n(7642),x=n(2773),R=n(9533),M=n(3153),I=n(4999),N=n(7954),S=n(4388),$=n(6938),z=n(5391),L=n(9295),W=n(6854);let _,T,H,B,O,q,D,F,P,Q,U;(0,k.initializeI18n)(E.NS,E.I);const{defineElement:X,property:G,event:J}=(0,h.createDecorators)(),K=(0,d.memo)(oe);let V;var Y=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ne=new WeakSet,se=new WeakMap;class ae extends p.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,ne),(0,r.A)(this,Y,T(this)),(0,r.A)(this,Z,(H(this),B(this))),(0,r.A)(this,ee,(O(this),q(this))),(0,r.A)(this,te,(D(this),F(this))),(0,r.A)(this,se,(U(this),()=>{(0,l.A)(ne,this,P).emit()}))}get taskId(){return(0,u.A)(Y,this)}set taskId(e){(0,i.A)(Y,this,e)}get task(){return(0,u.A)(Z,this)}set task(e){(0,i.A)(Z,this,e)}get jobs(){return(0,u.A)(ee,this)}set jobs(e){(0,i.A)(ee,this,e)}render(){return m().createElement(re,{taskId:this.taskId,jobs:this.jobs,task:this.task,onShare:(0,u.A)(se,this)})}}function re(e){var t;let{taskId:n,task:s,jobs:a,onShare:r}=e;const o=(0,d.useRef)(null),{task:l,jobs:i,plan:u,error:c,humanInputRef:h}=(0,x.S)(n),p=n?l:s,k=n?i:null!=a?a:[],v=n?u:null==s?void 0:s.plan,b=(0,R.B)(p,k),E=null==b?void 0:b.nodes,N=null==b?void 0:b.edges;(0,d.useEffect)((()=>{c&&(0,f.handleHttpError)(c)}),[c]);const S=(0,d.useCallback)(((e,t)=>{var n;null===(n=h.current)||void 0===n||n.call(h,e,t)}),[h]),[$,z]=(0,d.useState)(null),L=(0,d.useCallback)(((e,t)=>{z((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:_,nodes:T,edges:H}=(0,j.g)({rawNodes:E,rawEdges:N,state:null==p?void 0:p.state,sizeMap:$}),{grabbing:B,transform:O,transformRef:q,zoomer:D}=(0,y.f)({rootRef:o,zoomable:_,scrollable:_,pannable:_}),{centered:F,setCentered:P,reCenterRef:Q}=(0,C.E)({nodes:T,sizeReady:_,zoomer:D,rootRef:o}),U=!W.QB.includes(null!==(t=null==p?void 0:p.state)&&void 0!==t?t:"working")&&2===T.length,X=(0,d.useMemo)((()=>new Set(H.map((e=>e.source)))),[H]),G=(0,d.useMemo)((()=>{if(!_)return null;const e=[];for(const t of T)X.has(t.id)||e.push(t);return e.length>0?Math.max(...e.map((e=>e.view.y+e.view.height))):null}),[T,X,_]);(0,d.useEffect)((()=>{const e=o.current;if(!e||null===G)return;const{offsetHeight:t}=e,n=q.current,s=G*n.k+n.y,a=t-W.xX-s;a<0&&D.translateBy((0,A.A)(o.current),0,a)}),[G,q,D]);const J=(0,d.useCallback)((()=>{Q.current=!0,P(!1)}),[Q,P]),V=(0,d.useCallback)((e=>{D.scaleTo((0,A.A)(o.current),e)}),[D]);return m().createElement(m().Fragment,null,m().createElement("div",{className:w.A.root,ref:o,style:{cursor:B?"grabbing":"grab"}},m().createElement("div",{className:g()(w.A.canvas,{[w.A.ready]:_&&F}),style:{transform:`translate3d(${O.x}px, ${O.y}px, 0) scale(${O.k})`}},m().createElement("svg",{className:w.A.edges},H.map((e=>m().createElement("path",{className:w.A.edge,key:`${e.source}-${e.target}`,d:e.points.map(((e,t)=>{let{x:n,y:s}=e;return`${0===t?"M":"L"}${n},${s}`})).join(" ")})))),T.map((e=>{var t,n;return m().createElement(K,{key:e.id,id:e.id,type:e.type,content:e.content,job:e.job,state:e.state,startTime:null==p?void 0:p.startTime,taskLoading:U,instructionLoading:"instruction"===e.type&&!X.has(e.id),edges:H,x:null===(t=e.view)||void 0===t?void 0:t.x,y:null===(n=e.view)||void 0===n?void 0:n.y,onResize:L,humanInput:S,onShare:r})})))),m().createElement("div",{className:w.A.widgets},m().createElement(M.r,{plan:v}),m().createElement(I.l,{scale:O.k,onScaleChange:V,onReCenter:J})))}function oe(e){let{id:t,type:n,state:s,job:a,content:r,startTime:o,taskLoading:l,instructionLoading:i,x:u,y:c,onResize:h,humanInput:p,onShare:f}=e;const k=(0,d.useRef)(null);return(0,d.useEffect)((()=>{const e=k.current;if(!e)return;const n=new b.A((()=>{h(t,[e.offsetWidth,e.offsetHeight])}));return n.observe(e),()=>{n.disconnect(),h(t,null)}}),[t,h]),(0,d.useEffect)((()=>{const e=k.current;if(!e)return;const t=e=>{e.stopPropagation()};return e.addEventListener("mousedown",t),()=>{e.removeEventListener("mousedown",t)}}),[]),m().createElement("div",{className:g()(w.A.node,{[w.A.ready]:null!=u&&null!=c}),ref:k,style:{left:u,top:c}},"start"===n?m().createElement(N.H,null):"end"===n?m().createElement(L.s,{onShare:f}):"requirement"===n?m().createElement(S.O,{content:r,startTime:o,loading:l}):"instruction"===n?m().createElement($.L,{content:a.instruction,loading:i}):"job"===n?m().createElement(z.W,{state:s,job:a,humanInput:p}):m().createElement("div",{className:`${w.A["node-default"]} ${w.A["size-medium"]}`},`Unknown job type: "${n}"`))}s=ae,({e:[T,H,B,O,q,D,F,P,Q,U],c:[V,_]}=(0,c.A)(s,[X("ai-portal.cruise-canvas",{shadowOptions:!1})],[[G(),1,"taskId"],[G({attribute:!1}),1,"task"],[G({attribute:!1}),1,"jobs"],[J({type:"share"}),1,"shareEvent",e=>(0,u.A)(te,e),(e,t)=>(0,i.A)(te,e,t)]],0,(e=>se.has((0,o.A)(e))),p.ReactNextElement)),_()}}]);
|
|
2
|
-
//# sourceMappingURL=cruise-canvas.a760429c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/cruise-canvas.a760429c.js","mappings":"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","sources":["webpack:///./src/cruise-canvas/index.tsx"],"sourcesContent":["// istanbul ignore file: experimental\nimport React, {\n memo,\n useCallback,\n useEffect,\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 { 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 } from \"d3-selection\";\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 { CANVAS_PADDING_BOTTOM, DONE_STATES } from \"./constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst MemoizedNodeComponent = memo(NodeComponent);\n\nexport interface CruiseCanvasProps {\n taskId: string | undefined;\n task: TaskBaseDetail | undefined;\n jobs: Job[] | undefined;\n}\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 @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n render() {\n return (\n <CruiseCanvasComponent\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n onShare={this.#onShare}\n />\n );\n }\n}\n\nexport interface CruiseCanvasComponentProps extends CruiseCanvasProps {\n onShare?: () => void;\n}\n\nexport function CruiseCanvasComponent({\n taskId,\n task: propTask,\n jobs: propJobs,\n onShare,\n}: CruiseCanvasComponentProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n task: _task,\n jobs: _jobs,\n plan: _plan,\n error,\n humanInputRef,\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\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 handleNodeResize = 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: task?.state,\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 });\n\n const taskDone = DONE_STATES.includes(task?.state ?? \"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 useEffect(() => {\n const root = rootRef.current;\n if (!root || bottom === null) {\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(select(rootRef.current!), 0, diffY);\n }\n }, [bottom, transformRef, 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 return (\n <>\n <div\n className={styles.root}\n ref={rootRef}\n style={{\n cursor: grabbing ? \"grabbing\" : \"grab\",\n }}\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\" && !nonLeafNodes.has(node.id)\n }\n edges={edges}\n x={node.view?.x}\n y={node.view?.y}\n onResize={handleNodeResize}\n humanInput={humanInput}\n onShare={onShare}\n />\n ))}\n </div>\n </div>\n <div className={styles.widgets}>\n <PlanProgress plan={plan} />\n <ZoomBar\n scale={transform.k}\n onScaleChange={handleScaleChange}\n onReCenter={handleReCenter}\n />\n </div>\n </>\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 onResize: (id: string, size: SizeTuple | null) => void;\n humanInput?: (jobId: string, input: string) => void;\n onShare?: () => void;\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 onResize,\n humanInput,\n onShare,\n}: NodeComponentProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const observer = new ResizeObserver(() => {\n onResize(id, [element.offsetWidth, element.offsetHeight]);\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n onResize(id, null);\n };\n }, [id, onResize]);\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 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 >\n {type === \"start\" ? (\n <NodeStart />\n ) : type === \"end\" ? (\n <NodeEnd onShare={onShare} />\n ) : type === \"requirement\" ? (\n <NodeRequirement\n content={content}\n startTime={startTime}\n loading={taskLoading}\n />\n ) : type === \"instruction\" ? (\n <NodeInstruction\n content={job!.instruction}\n loading={instructionLoading}\n />\n ) : type === \"job\" ? (\n <NodeJob state={state} job={job!} humanInput={humanInput} />\n ) : (\n <div className={`${styles[\"node-default\"]} ${styles[\"size-medium\"]}`}>\n {`Unknown job type: \"${type}\"`}\n </div>\n )}\n </div>\n );\n}\n"],"names":["initializeI18n","NS","locales","defineElement","property","event","createDecorators","MemoizedNodeComponent","memo","NodeComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_CruiseCanvas_brand","WeakSet","_onShare","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","taskId","_classPrivateFieldGet","v","_classPrivateFieldSet","task","jobs","render","React","CruiseCanvasComponent","onShare","_ref","_task$state","propTask","propJobs","rootRef","useRef","_task","_jobs","plan","_plan","error","humanInputRef","useTaskDetail","graph","useTaskGraph","rawNodes","nodes","rawEdges","edges","useEffect","handleHttpError","humanInput","useCallback","jobId","input","_humanInputRef$curren","current","call","sizeMap","setSizeMap","useState","handleNodeResize","id","size","prev","newMap","Map","delete","set","sizeReady","useLayout","state","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","push","Math","max","view","y","height","root","offsetHeight","transformedBottom","k","diffY","CANVAS_PADDING_BOTTOM","translateBy","select","handleReCenter","handleScaleChange","scale","scaleTo","className","styles","ref","style","cursor","classNames","canvas","ready","x","key","target","d","points","_ref2","i","join","_node$view","_node$view2","type","content","job","startTime","instructionLoading","onResize","widgets","PlanProgress","ZoomBar","onScaleChange","onReCenter","_ref3","nodeRef","element","observer","ResizeObserver","offsetWidth","observe","disconnect","handleMouseDown","e","stopPropagation","addEventListener","removeEventListener","left","top","NodeStart","NodeEnd","NodeRequirement","loading","NodeInstruction","instruction","NodeJob","_CruiseCanvas2","_set_shareEvent","c","_initClass","_applyDecs","shadowOptions","attribute","o","_","_checkInRHS"],"sourceRoot":""}
|
package/dist/images/e7d89ec3.png
DELETED
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|