@next-bricks/advanced 0.49.10 → 0.49.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/bricks.json +5 -5
  2. package/dist/chunks/114.e4e830d6.js +2 -0
  3. package/dist/chunks/{114.cce2f93b.js.map → 114.e4e830d6.js.map} +1 -1
  4. package/dist/chunks/1889.b0931dce.js +2 -0
  5. package/dist/chunks/1889.b0931dce.js.map +1 -0
  6. package/dist/chunks/4197.2e58e4b4.js +2 -0
  7. package/dist/chunks/{4197.b111be37.js.map → 4197.2e58e4b4.js.map} +1 -1
  8. package/dist/chunks/4306.b3556139.js +2 -0
  9. package/dist/chunks/4306.b3556139.js.map +1 -0
  10. package/dist/chunks/{4837.72090bc6.js → 4837.6d691055.js} +2 -2
  11. package/dist/chunks/{4837.72090bc6.js.map → 4837.6d691055.js.map} +1 -1
  12. package/dist/chunks/{7218.e36a3bcf.js → 7218.6997ac20.js} +2 -2
  13. package/dist/chunks/{7218.e36a3bcf.js.map → 7218.6997ac20.js.map} +1 -1
  14. package/dist/chunks/7733.a99c50bd.js +2 -0
  15. package/dist/chunks/{7733.6804a907.js.map → 7733.a99c50bd.js.map} +1 -1
  16. package/dist/chunks/9118.bee2fa5f.js +3 -0
  17. package/dist/chunks/9118.bee2fa5f.js.map +1 -0
  18. package/dist/chunks/948.0d1d643b.js +3 -0
  19. package/dist/chunks/948.0d1d643b.js.map +1 -0
  20. package/dist/chunks/{capture-snapshot.78552e7c.js → capture-snapshot.806f8ea2.js} +2 -2
  21. package/dist/chunks/{capture-snapshot.78552e7c.js.map → capture-snapshot.806f8ea2.js.map} +1 -1
  22. package/dist/chunks/eo-cascader.1724b81a.js +2 -0
  23. package/dist/chunks/{eo-cascader.b85beec8.js.map → eo-cascader.1724b81a.js.map} +1 -1
  24. package/dist/chunks/eo-next-table.4882346b.js +2 -0
  25. package/dist/chunks/{eo-next-table.ce9143ea.js.map → eo-next-table.4882346b.js.map} +1 -1
  26. package/dist/chunks/eo-table.90fc70ed.js +2 -0
  27. package/dist/chunks/{eo-table.8ea71d8c.js.map → eo-table.90fc70ed.js.map} +1 -1
  28. package/dist/chunks/eo-text-tooltip.3ee17afb.js +2 -0
  29. package/dist/chunks/{eo-text-tooltip.75c02684.js.map → eo-text-tooltip.3ee17afb.js.map} +1 -1
  30. package/dist/chunks/eo-tree-select.3d3fde26.js +2 -0
  31. package/dist/chunks/{eo-tree-select.eae6af16.js.map → eo-tree-select.3d3fde26.js.map} +1 -1
  32. package/dist/chunks/{eo-tree.fd4dad63.js → eo-tree.94271715.js} +3 -3
  33. package/dist/chunks/{eo-tree.fd4dad63.js.map → eo-tree.94271715.js.map} +1 -1
  34. package/dist/chunks/eo-workbench-layout-v2.9761ea93.js +3 -0
  35. package/dist/chunks/{eo-workbench-layout-v2.56706ab0.js.map → eo-workbench-layout-v2.9761ea93.js.map} +1 -1
  36. package/dist/chunks/eo-workbench-layout.514dd559.js +2 -0
  37. package/dist/chunks/{eo-workbench-layout.af277e81.js.map → eo-workbench-layout.514dd559.js.map} +1 -1
  38. package/dist/chunks/main.8f27f217.js +2 -0
  39. package/dist/chunks/{main.b31d2cfb.js.map → main.8f27f217.js.map} +1 -1
  40. package/dist/chunks/pdf-viewer.d4b2cf5c.js +2 -0
  41. package/dist/chunks/{pdf-viewer.8fce6070.js.map → pdf-viewer.d4b2cf5c.js.map} +1 -1
  42. package/dist/examples.json +3 -3
  43. package/dist/index.aaa5c5af.js +2 -0
  44. package/dist/{index.b74143f9.js.map → index.aaa5c5af.js.map} +1 -1
  45. package/dist/manifest.json +66 -66
  46. package/package.json +4 -5
  47. package/dist/chunks/114.cce2f93b.js +0 -2
  48. package/dist/chunks/1889.d17b50c4.js +0 -2
  49. package/dist/chunks/1889.d17b50c4.js.map +0 -1
  50. package/dist/chunks/4197.b111be37.js +0 -2
  51. package/dist/chunks/4306.480cc1d2.js +0 -2
  52. package/dist/chunks/4306.480cc1d2.js.map +0 -1
  53. package/dist/chunks/7733.6804a907.js +0 -2
  54. package/dist/chunks/9118.0313a384.js +0 -3
  55. package/dist/chunks/9118.0313a384.js.map +0 -1
  56. package/dist/chunks/9140.fa754a84.js +0 -3
  57. package/dist/chunks/9140.fa754a84.js.map +0 -1
  58. package/dist/chunks/eo-cascader.b85beec8.js +0 -2
  59. package/dist/chunks/eo-next-table.ce9143ea.js +0 -2
  60. package/dist/chunks/eo-table.8ea71d8c.js +0 -2
  61. package/dist/chunks/eo-text-tooltip.75c02684.js +0 -2
  62. package/dist/chunks/eo-tree-select.eae6af16.js +0 -2
  63. package/dist/chunks/eo-workbench-layout-v2.56706ab0.js +0 -3
  64. package/dist/chunks/eo-workbench-layout.af277e81.js +0 -2
  65. package/dist/chunks/main.b31d2cfb.js +0 -2
  66. package/dist/chunks/pdf-viewer.8fce6070.js +0 -2
  67. package/dist/index.b74143f9.js +0 -2
  68. /package/dist/chunks/{9118.0313a384.js.LICENSE.txt → 9118.bee2fa5f.js.LICENSE.txt} +0 -0
  69. /package/dist/chunks/{9140.fa754a84.js.LICENSE.txt → 948.0d1d643b.js.LICENSE.txt} +0 -0
  70. /package/dist/chunks/{eo-tree.fd4dad63.js.LICENSE.txt → eo-tree.94271715.js.LICENSE.txt} +0 -0
  71. /package/dist/chunks/{eo-workbench-layout-v2.56706ab0.js.LICENSE.txt → eo-workbench-layout-v2.9761ea93.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/7218.e36a3bcf.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(renderResult, element);\n } else {\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
+ {"version":3,"file":"chunks/7218.6997ac20.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(renderResult, element);\n } else {\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":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_advanced=globalThis.webpackChunk_next_bricks_advanced||[]).push([[114,7733],{12559:(e,t,n)=>{function r(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{A:()=>r})},20114:(e,t,n)=>{n.r(t),n.d(t,{ReactNextElement:()=>p,wrapBrick:()=>y,wrapLocalBrick:()=>v});var r=n(74635),s=n(70918),o=n(12559),i=n(86121),a=n(70829),c=n(18769),l=n(25873),h=n(59435),d=n(90870),u=new WeakMap,f=new WeakSet;class p extends d.NextElement{constructor(){super(...arguments),(0,r.A)(this,f),(0,s.A)(this,u,void 0)}connectedCallback(){super._markConnectedCallbackCalled(),(0,o.A)(f,this,A).call(this),this._render()}disconnectedCallback(){var e;null===(e=(0,a.A)(u,this))||void 0===e||e.render(null)}_render(){const e=()=>{if(!this.isConnected||!(0,a.A)(u,this))return;const e=this.constructor;var t;e.shadowOptions?(0,a.A)(u,this).render((0,d.supportsAdoptingStyleSheets)()||null===(t=e.styleTexts)||void 0===t||!t.length?this.render():c.createElement(c.Fragment,null,c.createElement("style",null,e.styleTexts.join("\n")),this.render())):(0,a.A)(u,this).render(this.render())};window.BRICK_NEXT_VERSIONS&&!window.DISABLE_REACT_FLUSH_SYNC?(0,h.flushSync)(e):e()}}function A(){if((0,a.A)(u,this))return;const e=this.constructor;if(e.shadowOptions){const n=this.attachShadow(e.shadowOptions);var t;if((0,d.supportsAdoptingStyleSheets)()&&null!==(t=e.styleTexts)&&void 0!==t&&t.length){const t=new CSSStyleSheet;t.replaceSync(e.styleTexts.join("")),n.adoptedStyleSheets=[t]}(0,i.A)(u,this,(0,l.H)(n))}else(0,i.A)(u,this,(0,l.H)(this))}var w=n(89575);function v(e,t){return(0,c.forwardRef)((function(n,r){let{children:s,...o}=n;const i="string"==typeof e?e:e.__tagName,a=S(o,t);return c.createElement(i,(0,w.A)({},a,{ref:r}),s)}))}function y(e,t){return(0,c.forwardRef)((function(n,r){let{children:s,...o}=n;const i=S(o,t);return c.createElement(e,(0,w.A)({},i,{ref:r}),s)}))}function S(e,t){let n;if(t){n={};for(const[r,s]of Object.entries(e))Object.prototype.hasOwnProperty.call(t,r)?n[`on${t[r]}`]=s:n[r]=s}else n=e;return n}},25873:(e,t,n)=>{var r=n(59435);t.H=r.createRoot,r.hydrateRoot},70829:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(12559);function s(e,t){return e.get((0,r.A)(e,t))}},70918:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(72016);function s(e,t,n){(0,r.A)(e,t),t.set(e,n)}},72016:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{A:()=>r})},74635:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(72016);function s(e,t){(0,r.A)(e,t),t.add(e)}},86121:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(12559);function s(e,t,n){return e.set((0,r.A)(e,t),n),n}},89575:(e,t,n)=>{function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})}}]);
2
+ //# sourceMappingURL=7733.a99c50bd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/7733.6804a907.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@next-core/react-element/dist/esm/ReactNextElement.js","webpack:///../../node_modules/@next-core/react-element/dist/esm/wrapBrick.js","webpack:///../../node_modules/react-dom/client.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nvar _ReactNextElement;\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { NextElement, supportsAdoptingStyleSheets } from \"@next-core/element\";\nvar _root = /*#__PURE__*/new WeakMap();\nvar _ReactNextElement_brand = /*#__PURE__*/new WeakSet();\nexport class ReactNextElement extends NextElement {\n constructor() {\n super(...arguments);\n _classPrivateMethodInitSpec(this, _ReactNextElement_brand);\n _classPrivateFieldInitSpec(this, _root, void 0);\n }\n connectedCallback() {\n super._markConnectedCallbackCalled();\n _assertClassBrand(_ReactNextElement_brand, this, _createRoot).call(this);\n this._render();\n }\n disconnectedCallback() {\n var _classPrivateFieldGet2;\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_root, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.render(null);\n }\n _render() {\n const render = () => {\n if (!this.isConnected || !_classPrivateFieldGet(_root, this)) {\n return;\n }\n const ctor = this.constructor;\n if (ctor.shadowOptions) {\n var _ctor$styleTexts;\n _classPrivateFieldGet(_root, this).render(supportsAdoptingStyleSheets() || !((_ctor$styleTexts = ctor.styleTexts) !== null && _ctor$styleTexts !== void 0 && _ctor$styleTexts.length) ? this.render() : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"style\", null, ctor.styleTexts.join(\"\\n\")), this.render()));\n } else {\n _classPrivateFieldGet(_root, this).render(this.render());\n }\n };\n\n // In brick next container, enable flush sync for the initial mount of\n // each page, in order to avoid menu flickering.\n // Otherwise, avoid using flush sync as possible.\n if (window.BRICK_NEXT_VERSIONS && !window.DISABLE_REACT_FLUSH_SYNC) {\n flushSync(render);\n } else {\n render();\n }\n }\n}\n_ReactNextElement = ReactNextElement;\nfunction _createRoot() {\n if (_classPrivateFieldGet(_root, this)) {\n return;\n }\n const ctor = this.constructor;\n if (ctor.shadowOptions) {\n const shadowRoot = this.attachShadow(ctor.shadowOptions);\n if (supportsAdoptingStyleSheets()) {\n var _ctor$styleTexts2;\n if ((_ctor$styleTexts2 = ctor.styleTexts) !== null && _ctor$styleTexts2 !== void 0 && _ctor$styleTexts2.length) {\n const styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(ctor.styleTexts.join(\"\"));\n shadowRoot.adoptedStyleSheets = [styleSheet];\n }\n }\n _classPrivateFieldSet(_root, this, createRoot(shadowRoot));\n } else {\n var _ctor$styleTexts3;\n if (process.env.NODE_ENV !== \"production\" && (_ctor$styleTexts3 = ctor.styleTexts) !== null && _ctor$styleTexts3 !== void 0 && _ctor$styleTexts3.length) {\n throw new Error(\"Use `styleTexts` with `shadowOptions: false` is not supported\");\n }\n _classPrivateFieldSet(_root, this, createRoot(this));\n }\n}\n//# sourceMappingURL=ReactNextElement.js.map","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { forwardRef } from \"react\";\nexport function wrapLocalBrick(brick, eventsMapping) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\") {\n if (typeof brick === \"string\" && !customElements.get(brick)) {\n throw new Error(`Brick ${brick} is not defined while using \\`wrapLocalBrick\\`.`);\n }\n }\n return /*#__PURE__*/forwardRef(function BrickReactWrapper(_ref, ref) {\n let {\n children,\n ...props\n } = _ref;\n const WebComponent = typeof brick === \"string\" ? brick : brick.__tagName;\n const properties = getMappedProperties(props, eventsMapping);\n return /*#__PURE__*/React.createElement(WebComponent, _extends({}, properties, {\n ref: ref\n }), children);\n });\n}\nexport function wrapBrick(BrickName, eventsMapping) {\n return /*#__PURE__*/forwardRef(function BrickReactWrapper(_ref2, ref) {\n let {\n children,\n ...props\n } = _ref2;\n const properties = getMappedProperties(props, eventsMapping);\n return /*#__PURE__*/React.createElement(BrickName, _extends({}, properties, {\n ref: ref\n }), children);\n });\n}\nfunction getMappedProperties(props, eventsMapping) {\n let properties;\n if (eventsMapping) {\n properties = {};\n for (const [propName, propValue] of Object.entries(props)) {\n if (Object.prototype.hasOwnProperty.call(eventsMapping, propName)) {\n properties[`on${eventsMapping[propName]}`] = propValue;\n } else {\n properties[propName] = propValue;\n }\n }\n } else {\n properties = props;\n }\n return properties;\n}\n//# sourceMappingURL=wrapBrick.js.map","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}"],"names":["_assertClassBrand","e","t","n","has","arguments","length","TypeError","_root","WeakMap","_ReactNextElement_brand","WeakSet","ReactNextElement","NextElement","constructor","super","this","connectedCallback","_markConnectedCallbackCalled","_createRoot","call","_render","disconnectedCallback","_classPrivateFieldGet2","render","isConnected","ctor","_ctor$styleTexts","shadowOptions","supportsAdoptingStyleSheets","styleTexts","join","window","BRICK_NEXT_VERSIONS","DISABLE_REACT_FLUSH_SYNC","flushSync","shadowRoot","attachShadow","_ctor$styleTexts2","styleSheet","CSSStyleSheet","replaceSync","adoptedStyleSheets","wrapLocalBrick","brick","eventsMapping","forwardRef","_ref","ref","children","props","WebComponent","__tagName","properties","getMappedProperties","wrapBrick","BrickName","_ref2","propName","propValue","Object","entries","prototype","hasOwnProperty","m","exports","createRoot","hydrateRoot","s","a","get","_classPrivateFieldInitSpec","obj","privateMap","value","set","_checkPrivateRedeclaration","privateCollection","_classPrivateMethodInitSpec","privateSet","add","_classPrivateFieldSet2","r","_extends","assign","bind","target","i","source","key","apply"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/7733.a99c50bd.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@next-core/react-element/dist/esm/ReactNextElement.js","webpack:///../../node_modules/@next-core/react-element/dist/esm/wrapBrick.js","webpack:///../../node_modules/react-dom/client.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nvar _ReactNextElement;\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { NextElement, supportsAdoptingStyleSheets } from \"@next-core/element\";\nvar _root = /*#__PURE__*/new WeakMap();\nvar _ReactNextElement_brand = /*#__PURE__*/new WeakSet();\nexport class ReactNextElement extends NextElement {\n constructor() {\n super(...arguments);\n _classPrivateMethodInitSpec(this, _ReactNextElement_brand);\n _classPrivateFieldInitSpec(this, _root, void 0);\n }\n connectedCallback() {\n super._markConnectedCallbackCalled();\n _assertClassBrand(_ReactNextElement_brand, this, _createRoot).call(this);\n this._render();\n }\n disconnectedCallback() {\n var _classPrivateFieldGet2;\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_root, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.render(null);\n }\n _render() {\n const render = () => {\n if (!this.isConnected || !_classPrivateFieldGet(_root, this)) {\n return;\n }\n const ctor = this.constructor;\n if (ctor.shadowOptions) {\n var _ctor$styleTexts;\n _classPrivateFieldGet(_root, this).render(supportsAdoptingStyleSheets() || !((_ctor$styleTexts = ctor.styleTexts) !== null && _ctor$styleTexts !== void 0 && _ctor$styleTexts.length) ? this.render() : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"style\", null, ctor.styleTexts.join(\"\\n\")), this.render()));\n } else {\n _classPrivateFieldGet(_root, this).render(this.render());\n }\n };\n\n // In brick next container, enable flush sync for the initial mount of\n // each page, in order to avoid menu flickering.\n // Otherwise, avoid using flush sync as possible.\n if (window.BRICK_NEXT_VERSIONS && !window.DISABLE_REACT_FLUSH_SYNC) {\n flushSync(render);\n } else {\n render();\n }\n }\n}\n_ReactNextElement = ReactNextElement;\nfunction _createRoot() {\n if (_classPrivateFieldGet(_root, this)) {\n return;\n }\n const ctor = this.constructor;\n if (ctor.shadowOptions) {\n const shadowRoot = this.attachShadow(ctor.shadowOptions);\n if (supportsAdoptingStyleSheets()) {\n var _ctor$styleTexts2;\n if ((_ctor$styleTexts2 = ctor.styleTexts) !== null && _ctor$styleTexts2 !== void 0 && _ctor$styleTexts2.length) {\n const styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(ctor.styleTexts.join(\"\"));\n shadowRoot.adoptedStyleSheets = [styleSheet];\n }\n }\n _classPrivateFieldSet(_root, this, createRoot(shadowRoot));\n } else {\n var _ctor$styleTexts3;\n if (process.env.NODE_ENV !== \"production\" && (_ctor$styleTexts3 = ctor.styleTexts) !== null && _ctor$styleTexts3 !== void 0 && _ctor$styleTexts3.length) {\n throw new Error(\"Use `styleTexts` with `shadowOptions: false` is not supported\");\n }\n _classPrivateFieldSet(_root, this, createRoot(this));\n }\n}\n//# sourceMappingURL=ReactNextElement.js.map","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { forwardRef } from \"react\";\nexport function wrapLocalBrick(brick, eventsMapping) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\") {\n if (typeof brick === \"string\" && !customElements.get(brick)) {\n throw new Error(`Brick ${brick} is not defined while using \\`wrapLocalBrick\\`.`);\n }\n }\n return /*#__PURE__*/forwardRef(function BrickReactWrapper(_ref, ref) {\n let {\n children,\n ...props\n } = _ref;\n const WebComponent = typeof brick === \"string\" ? brick : brick.__tagName;\n const properties = getMappedProperties(props, eventsMapping);\n return /*#__PURE__*/React.createElement(WebComponent, _extends({}, properties, {\n ref: ref\n }), children);\n });\n}\nexport function wrapBrick(BrickName, eventsMapping) {\n return /*#__PURE__*/forwardRef(function BrickReactWrapper(_ref2, ref) {\n let {\n children,\n ...props\n } = _ref2;\n const properties = getMappedProperties(props, eventsMapping);\n return /*#__PURE__*/React.createElement(BrickName, _extends({}, properties, {\n ref: ref\n }), children);\n });\n}\nfunction getMappedProperties(props, eventsMapping) {\n let properties;\n if (eventsMapping) {\n properties = {};\n for (const [propName, propValue] of Object.entries(props)) {\n if (Object.prototype.hasOwnProperty.call(eventsMapping, propName)) {\n properties[`on${eventsMapping[propName]}`] = propValue;\n } else {\n properties[propName] = propValue;\n }\n }\n } else {\n properties = props;\n }\n return properties;\n}\n//# sourceMappingURL=wrapBrick.js.map","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}"],"names":["_assertClassBrand","e","t","n","has","arguments","length","TypeError","_root","WeakMap","_ReactNextElement_brand","WeakSet","ReactNextElement","NextElement","constructor","super","this","connectedCallback","_markConnectedCallbackCalled","_createRoot","call","_render","disconnectedCallback","_classPrivateFieldGet2","render","isConnected","ctor","_ctor$styleTexts","shadowOptions","supportsAdoptingStyleSheets","styleTexts","join","window","BRICK_NEXT_VERSIONS","DISABLE_REACT_FLUSH_SYNC","flushSync","shadowRoot","attachShadow","_ctor$styleTexts2","styleSheet","CSSStyleSheet","replaceSync","adoptedStyleSheets","wrapLocalBrick","brick","eventsMapping","forwardRef","_ref","ref","children","props","WebComponent","__tagName","properties","getMappedProperties","wrapBrick","BrickName","_ref2","propName","propValue","Object","entries","prototype","hasOwnProperty","m","exports","createRoot","hydrateRoot","s","a","get","_classPrivateFieldInitSpec","obj","privateMap","value","set","_checkPrivateRedeclaration","privateCollection","_classPrivateMethodInitSpec","privateSet","add","_classPrivateFieldSet2","r","_extends","assign","bind","target","i","source","key","apply"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 9118.bee2fa5f.js.LICENSE.txt */
2
+ "use strict";(globalThis.webpackChunk_next_bricks_advanced=globalThis.webpackChunk_next_bricks_advanced||[]).push([[9118],{24586:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(11369);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},49118:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>l,auth:()=>vt,checkInstalledApps:()=>o,checkPermissions:()=>mt,flowApi:()=>i,menu:()=>s,messageDispatcher:()=>gt});var r={};n.r(r),n.d(r,{addPathToBlackList:()=>S,authenticate:()=>A,getAuth:()=>w,isBlockedHref:()=>P,isBlockedPath:()=>I,isBlockedUrl:()=>O,isLoggedIn:()=>b,logout:()=>y});var o={};n.r(o),n.d(o,{getCheckedApp:()=>ae,preCheckInstalledApps:()=>ie,waitForCheckingApps:()=>se});var i={};n.r(i),n.d(i,{FLOW_API_PROVIDER:()=>le,clearCollectWidgetContract:()=>be,clearDebugContract:()=>Ie,collectContract:()=>we,collectDebugContract:()=>Se,collectWidgetContract:()=>ye,getArgsOfFlowApi:()=>ke,isFlowApiProvider:()=>Pe,registerFlowApiProvider:()=>de});var s={};n.r(s),n.d(s,{fetchMenuById:()=>Ke,getMenuById:()=>Ye});var a={};n.r(a),n.d(a,{onRequest:()=>ut,onResponse:()=>pt,onResponseError:()=>dt});var c={};n.r(c),n.d(c,{create:()=>ht});var l={};n.r(l),n.d(l,{http:()=>a,initialize:()=>ct,pageView:()=>c});var u=n(85801),p=n(86330),d=n(22919),f=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(45256),m=n(11732);const g={};let v=new Set;function A(e){var t;Object.assign(g,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,accessToken:e.accessToken,userShowValue:e.userShowValue}),v=new Set(null===(t=e.license)||void 0===t?void 0:t.blackList)}function w(){return{...g}}function y(){for(const e of Object.keys(g))g[e]=void 0;k.clear(),E.length=0,C.clear()}function b(){return void 0!==g.username}function S(e){v.add(e)}function I(e){return[...v].some((t=>(0,h.matchPath)(e,{path:t})))}function O(e){const t=("string"==typeof e?(0,m.createLocation)(e):e).pathname;return"string"==typeof t&&I(t)}function P(e){const t=(0,h.getBasePath)(),n=new URL(e,`${location.origin}${t}`);return!(n.origin!==location.origin||!n.pathname.startsWith(t))&&I(n.pathname.substring(t.length-1))}const k=new Map,E=[],C=new Map;function M(e){if(b()&&!w().isAdmin)return _((0,u.scanPermissionActionsInAny)(e))}async function _(e){const t=e.filter((e=>!E.includes(e)));if(0===t.length)return;const n=[],r=[];for(const e of t){const t=k.get(e);t?n.push(t):r.push(e)}if(r.length>0){const e=(async()=>{try{const e=await f({actions:r},{noAbortOnRouteChange:!0});for(const t of e.actions)C.set(t.action,t.authorizationStatus),"undefined"===t.authorizationStatus&&console.error(`Undefined permission action: "${t.action}"`)}catch(e){console.error("Pre-check permissions failed",e)}finally{E.push(...r)}})();for(const t of r)k.set(t,e);n.push(e)}await Promise.all(n)}var T=n(74635),j=n(70918),N=n(5536),$=n(12559),R=n(86121),D=n(70829),L=n(41030),B=new WeakMap,W=new WeakMap,x=new WeakMap,U=new WeakMap,F=new WeakMap,q=new WeakMap,z=new WeakMap,H=new WeakSet;class G{constructor(e){(0,T.A)(this,H),(0,j.A)(this,B,void 0),(0,j.A)(this,W,void 0),(0,j.A)(this,x,[]),(0,j.A)(this,U,new Set),(0,j.A)(this,F,new Set),(0,j.A)(this,q,0),(0,j.A)(this,z,!1),(0,R.A)(B,this,e)}send(e){(0,D.A)(W,this)||(0,R.A)(W,this,(0,$.A)(H,this,J).call(this));const t=JSON.stringify(e);(0,D.A)(W,this).readyState===WebSocket.OPEN?(0,D.A)(W,this).send(t):(0,D.A)(x,this).push(t)}onMessage(e){return(0,D.A)(U,this).add(e),()=>{(0,D.A)(U,this).delete(e)}}onClose(e){return(0,D.A)(F,this).add(e),()=>{(0,D.A)(F,this).delete(e)}}reset(){(0,D.A)(x,this).length=0,(0,D.A)(U,this).clear(),(0,D.A)(F,this).clear()}close(){var e;(0,R.A)(z,this,!0),(null===(e=(0,D.A)(W,this))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,D.A)(W,this).close()}}function J(){console.log("WebSocket connecting ...");const e=new WebSocket((0,D.A)(B,this));let t;return e.addEventListener("open",(n=>{console.log("WebSocket open:",n),t=setTimeout((()=>{t=void 0,(0,R.A)(q,this,0)}),1e3);for(const t of(0,D.A)(x,this))e.send(t);(0,D.A)(x,this).length=0})),e.addEventListener("close",(e=>{(0,D.A)(z,this)||(void 0!==t&&clearTimeout(t),console.log("WebSocket close:",e),1e3!==e.code&&(0,$.A)(H,this,V).call(this))})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{const t=JSON.parse(e.data);for(const e of(0,D.A)(U,this))e(t)})),e}function V(){if((0,D.A)(q,this)>=5){console.error("WebSocket connect retry limit exceeded");for(const e of(0,D.A)(F,this))e();return}const e=1e3*Math.pow(2,(0,D.A)(q,this));console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,R.A)(q,this,(e=(0,D.A)(q,this),++e)),(0,R.A)(W,this,(0,$.A)(H,this,J).call(this))}),e)}var Y=new WeakMap,K=new WeakMap,Q=new WeakMap,X=new WeakSet;function Z(e){if(!(0,D.A)(Y,e)){const t=`${"https:"===location.protocol?"wss:":"ws:"}//${window.location.host}${(0,h.getBasePath)()}api/websocket_service/v1/ws`;(0,R.A)(Y,e,new G(t))}return(0,D.A)(Y,e)}function ee(e,t,n,r){const o=(0,D.A)(K,this)[e].get(r);if(o)return o;const i={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},s=new Promise(((t,r)=>{const o=te(n),s=(0,N.A)(X,this,Z).onMessage((n=>{const i=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),c=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(i||c)&&o===te(n.payload)&&((i?t:r)(n),s(),a())})),a=(0,N.A)(X,this,Z).onClose((()=>{r({retryCount:5}),s(),a()}));(0,N.A)(X,this,Z).send(i)}));return"sub"===e&&(0,D.A)(Q,this).set(t,r),(0,D.A)(K,this)[e].set(r,s),s}function te(e){const{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var ne=function(){var e=(0,p.A)((function*(e,t){return(yield d.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}();const re=new Map,oe=new Map;function ie(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){const n=function(e){var t;const n={usedArgs:new Set},{customTemplates:r,menus:o}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,u.traverseStoryboardExpressions)([e.routes,r,o],((e,t)=>{(0,u.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(const e of n)re.has(e)||t(e)||r.push(e);if(0===r.length)return;const o=ne({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]},{noAbortOnRouteChange:!0}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)}));for(const e of r)re.set(e,o.then((t=>{var n;const r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),o=r?{...r,id:e}:void 0;return oe.set(e,o),o})))}}async function se(e){await Promise.all(e.map((e=>re.get(e))))}function ae(e){if(window.STANDALONE_MICRO_APPS)return oe.get(e)}var ce=n(49523);const le="core.provider-flow-api";function ue(e,t){return null==e?void 0:e.some((e=>e.source===t))}async function pe(e){let{url:t,originalUri:n,method:r="GET",responseWrapper:o=!0,ext_fields:i,request:s,isFileType:a,stream:c}=e;const l=["get","delete","head"].includes(r.toLowerCase()),u=a?{responseType:"blob"}:{};let p;for(var f=arguments.length,h=new Array(f>1?f-1:0),m=1;m<f;m++)h[m-1]=arguments[m];if(l){var g,v,A,w;let e,o;var y,b;if(n&&"object"===(null==s?void 0:s.type)&&(null!==(g=null===(v=n.match(/:([^/]+)/g))||void 0===v?void 0:v.length)&&void 0!==g?g:0)===(null!==(A=null===(w=s.fields)||void 0===w?void 0:w.length)&&void 0!==A?A:0)?[o]=h:[e,o]=h,c)return await(0,ce.createSSEStream)(d.http.getUrlWithParams(t,e),{...u,...o,method:r,headers:Object.fromEntries([...new Headers(null!==(y=null===(b=o)||void 0===b?void 0:b.headers)&&void 0!==y?y:{}).entries()])});p=await d.http.simpleRequest(r,t,{params:e,...u,...o})}else{const e=function(e){if("object"!==(null==e?void 0:e.type))return!1;const t=e=>!(0,L.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),n=function(e){const t=ue(e,"query");for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];if(t){if(ue(e,"body")){const[e,t,n]=r;return{data:e,options:{params:t,...n}}}const[t,n]=r;return{data:{},options:{params:t,...n}}}const[i,s]=r;return{data:i,options:s}}(i,...h),o=e?function(e){if(e instanceof FormData)return e;const t=new FormData;for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>{t.append(n,e)})):!(0,L.isObject)(r)||r instanceof Blob||r instanceof Date?t.append(n,r):Object.entries(r).forEach((e=>{let[r,o]=e;t.append(`${n}[${r}]`,o)}));return t}(n.data):n.data;if(c){var S;const{body:e,headers:i}=d.http.getBodyAndHeaders(o,null===(S=n.options)||void 0===S?void 0:S.headers);return await(0,ce.createSSEStream)(t,{...u,...n.options,method:r,headers:Object.fromEntries([...new Headers(null!=i?i:{}).entries()]),body:e})}p=await d.http.requestWithBody(r,t,o,{...u,...n.options})}return!a&&o?p.data:p}function de(){customElements.define(le,(0,ce.createProviderClass)(pe))}var fe=n(55310);const he=async(e,t)=>(await d.http.post("api/gateway/next_builder.contract_center.BatchSearchContract/api/v1/contract/batch_search",e,t)).data,me=new Map,ge=new Map,ve=new Map,Ae=(e,t)=>{null==e||e.forEach((e=>{t.set(`${e.namespaceId}.${e.name}`,e)}))};function we(e){Ae(e,me)}function ye(e){Ae(e,ge)}function be(){ge.clear()}function Se(e){Ae(e,ve)}function Ie(){ve.clear()}const Oe=new Map;function Pe(e){return e.includes("@")}async function ke(e,t,n,r){if(!e.includes(":"))throw new Error(`You're using legacy Custom API "${e}" which is dropped in v3, please use Flow API instead`);const o=await async function(e){const[t,n]=e.split("@"),[r,o]=n.split(":"),i=function(e){return me.get(e)||ge.get(e)||ve.get(e)}(`${t}.${r}`);if(i)return{name:i.name,namespace:i.namespaceId,serviceName:i.serviceName,version:i.version,contract:{endpoint:i.endpoint,response:i.response,request:i.request}};let s=Oe.get(e);return s||(s=async function(e,t,n){let r;const o=`${e}@${t}`;let i;try{const{list:e}=await he({contract:[{fullContractName:o,version:n}]});r=e[0]}catch(e){i=e}return r?{name:r.name,namespace:r.namespaceId,serviceName:r.serviceName,version:r.version,contract:{endpoint:r.endpoint,response:r.response,request:r.request}}:(console.error(`Failed to fetch Flow API definition for "${o}:${n}"`,null!=i?i:"Contract not found"),null)}(t,r,o),Oe.set(e,s)),s}(e);if(!o)throw new Ee(`Flow API not found: "${e}"`);const i=function(e,t){var n,r;const o="string"==typeof t.contract?fe.safeLoad(t.contract,{schema:fe.JSON_SCHEMA,json:!0}):t.contract,{uri:i,method:s="GET",ext_fields:a}=null!==(n=null==o?void 0:o.endpoint)&&void 0!==n?n:{},c=!(null==o||!o.response)&&!1!==o.response.wrapper;if(!i)throw new Error(`Missing endpoint.uri in contract of provider "${e}"`);return{uri:i,method:"list"===s.toLowerCase()?"get":s,ext_fields:a,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==o||null===(r=o.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==o?void 0:o.request}}(e,o);return function(e,t,n,r){const{uri:o,method:i,ext_fields:s,responseWrapper:a,isFileType:c,request:l}=e,u="saveAs"===n;let p,d=t;u&&(Array.isArray(t)?(d=t.slice(),p=d.shift()):p=t.filename);const{url:f,args:h}=function(e,t){const{uri:n,name:r,namespace:o,serviceName:i,version:s,method:a="GET",request:c,ext_fields:l}=e,u=s?"logic.api.gateway"===i||null!=i&&i.startsWith("logic.api.gateway.")?"":i?`api/gateway/${i}`:`api/gateway/${o}.${r}@${s}`:`api/gateway/api_service.${o}.${r}`;let p,d=[];if(Array.isArray(t))d=t.slice(),p=n.replace(/:([^/]+)/g,(()=>d.shift()));else{const e={...t.params};if(p=n.replace(/:([^/]+)/g,((t,n)=>{if((0,ce.hasOwnProperty)(e,n)){const t=e[n];return delete e[n],t}throw new Error(`Missing required param: "${n}"`)})),["get","delete","head"].includes(a.toLowerCase())){var f,h,m,g;"object"===(null==c?void 0:c.type)&&(null!==(f=null===(h=n.match(/:([^/]+)/g))||void 0===h?void 0:h.length)&&void 0!==f?f:0)===(null!==(m=null===(g=c.fields)||void 0===g?void 0:g.length)&&void 0!==m?m:0)||d.push(e)}else{const t=null==l?void 0:l.find((e=>"body"===e.source));if(t){let n;t.name&&(0,ce.hasOwnProperty)(e,t.name)&&(n=e[t.name],delete e[t.name]),d.push(n)}const n=null==l?void 0:l.find((e=>"query"===e.source));if(n){let t;n.name&&(0,ce.hasOwnProperty)(e,n.name)&&(t=e[n.name],delete e[n.name]),d.push(t)}t||n||d.push(e)}t.options&&d.push(t.options)}return{url:u?u+p:p.replace(/^\//,""),args:d}}(e,d);return[...u?[p]:[],{url:f,originalUri:o,method:i,ext_fields:s,responseWrapper:a,request:l,isFileType:c,stream:r},...h]}(i,t,n,r)}class Ee extends Error{constructor(e){super(e),this.name="FlowApiNotFoundError",Error.captureStackTrace&&Error.captureStackTrace(this,Ee)}}var Ce=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Me=n(69740),_e=function(){var e=(0,p.A)((function*(e,t,n){return(yield d.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,Me.A)((0,Me.A)({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Te=n(99733);const je=Symbol("appId"),Ne=Symbol("menuI18nNamespace"),$e=Symbol("overrideApp");async function Re(e,t,n){const r=e.find((e=>"inject"!==e.type));if(!r)return;const o=[],i=new Map,s=new WeakMap;for(const t of e)if(t.i18n){const e=`menu/${t.menuId}~${t.app[0].appId}+${t.instanceId}`;Object.entries(t.i18n).forEach((t=>{let[n,r]=t;Te.i18n.addResourceBundle(n,e,r)})),s.set(t,e)}await Promise.all(e.map((e=>async function(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){const i=e.app[0].appId,s={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,M(e.itemsResolve)]};var o;i!==t.app.id&&(s.overrideApp=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(o=r.getStoryboardByAppId(i))||void 0===o?void 0:o.app,s.appendI18nNamespace=n.get(e));const a=await r.resolveData({transform:"items",...e.itemsResolve},s);e.items=a.items}}(e,t,s,n))));for(const t of e){var a;if(null!==(a=t.items)&&void 0!==a&&a.length)if("inject"===t.type&&t.injectMenuGroupId){let e=i.get(t.injectMenuGroupId);e||(e=[],i.set(t.injectMenuGroupId,e)),e.push(t)}else o.push(t)}return{...r,items:o.flatMap((e=>De(e.items,e,i,s))),[Ne]:s.get(r),[$e]:r.overrideApp}}function De(e,t,n,r){return null==e?void 0:e.map((e=>{var o;const i=e.groupId&&n.get(e.groupId);return i&&n.delete(e.groupId),{...e,children:(null!==(o=De(e.children,t,n,r))&&void 0!==o?o:[]).concat(i?i.flatMap((e=>De(e.items,e,n,r))):[]),[je]:t.app[0].appId,[Ne]:r.get(t),[$e]:t.overrideApp}}))}function Le(e){e.items=Be(e.items)}function Be(e){return function(e){return(0,L.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>({...e,children:Be(e.children)})))}var We=n(59933),xe=n(71321);function Ue(e,t,n,r){if("titleDataSource"in e&&(0,ce.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{let[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,xe.isEvaluable)(e.to)){const t=We.pipes.yaml(e.to);(0,ce.isObject)(t)&&["pathname","search","hash"].some((e=>(0,ce.hasOwnProperty)(t,e)))&&(e.to=t)}let o=n;if(t!==n.app.id){var i;const s=window.STANDALONE_MICRO_APPS?e[$e]:null===(i=r.getStoryboardByAppId(t))||void 0===i?void 0:i.app;o={...n,overrideApp:s,appendI18nNamespace:e[Ne]}}return r.asyncComputeRealValue(e,o,{ignoreSymbols:!0})}function Fe(e,t,n){return Promise.all(e.map((async e=>{let{children:r,...o}=e;const[i,s]=await Promise.all([Ue(o,o[je],t,n),r&&await Fe(r,t,n)]);return{...i,children:s}})))}var qe=function(){var e=(0,p.A)((function*(e,t,n,r){return(yield d.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,Me.A)((0,Me.A)({},r),{},{params:n}))).data}));return function(t,n,r,o){return e.apply(this,arguments)}}();const ze=new Map;async function He(e){if(e.title||(0,L.isEmpty)(e.titleDataSource))return e.title;const t=JSON.stringify(e.titleDataSource),n=ze.get(t);if(void 0!==n)return n;const{objectId:r,instanceId:o,attributeId:i}=e.titleDataSource,s=null!=i?i:"name",a=await qe(r,o,{fields:s});let c;if("#showKey"===i&&Array.isArray(a[s])){const[e,...t]=a[s];c=t.length>0?`${e}(${t.join(",")})`:String(e)}else c=String(a[s]);return ze.set(t,c),c}const Ge=new Map,Je=new Map;function Ve(e){return null==e?void 0:e.filter(h.checkIfOfComputed).map((e=>{const t=Ve(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:function(e){return e.href?P(e.href):!!e.to&&O(e.to)}(e)?null:(0,L.omit)(e,["type","items","children"])})).filter(Boolean)}function Ye(e){return Je.get(e)}function Ke(e,t,n){let r=Ge.get(e);return r||(r=async function(e,t,n){const r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,o,i,s;const a=n.getStoryboardByAppId(t);return(null!==(r=null!==(o=null===(i=a.meta)||void 0===i?void 0:i.injectMenus)&&void 0!==o?o:null===(s=a.meta)||void 0===s?void 0:s.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return{...e,...null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]}}}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(await _e(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(await Ce("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,o=await Re(r,t,n);if(!o)throw new Error(`Menu not found: ${e}`);Le(o);const{items:i,app:s,...a}=o,c={...t,pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,M([i,a])]};delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex,delete c.forEachSize;const l=s[0].appId,[u,p]=await Promise.all([Ue(a,l,c,n),Fe(i,c,n)]),d={title:await He(u),...(0,L.pick)(u,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"]),menuItems:Ve(p)};Je.set(e,d)}(e,t,n)),r}const Qe=[];let Xe=null;const Ze={maxWaitingTime:5e3,maxLoggedEvents:10};function et(){clearTimeout(Xe),Qe.length>Ze.maxLoggedEvents?tt():Xe=setTimeout(tt,Ze.maxWaitingTime)}function tt(){if(0===Qe.length)return;const e={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:Qe.splice(0,Ze.maxLoggedEvents)};var t;!function(e,t){const n=new Blob([JSON.stringify(t)],{type:"application/json"});window.navigator.sendBeacon(e,n)}(Ze.api,e),Qe.length&&(t=tt,(window.requestIdleCallback||window.requestAnimationFrame||(e=>setTimeout(e,17)))(t))}function nt(){window.addEventListener("beforeunload",tt,!1)}let rt,ot=!1,it=null,st=!0;const at=[];function ct(e){ot||(ot=!0,rt||(rt=function(e,t){return Object.assign(Ze,{...t,api:e}),{sendOnExit:nt,emit:et}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),rt.sendOnExit()))}const lt=Symbol("HttpAnalytics");function ut(e){const t=Math.round(performance.now()),n=Date.now();return e[lt]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function pt(e,t){return ft(!1,e,t)}function dt(e,t){return ft(!0,e,t)}function ft(e,t,n){const r=Math.round(performance.now()),o=Date.now(),{[lt]:i,url:s}=n;if(i&&!(e&&t instanceof d.HttpAbortError)){delete n[lt];const{st:c,time:l,perfStartTime:u}=i,{userInstanceId:p,username:f}=w();let h,m,g,v,A,y,b;if(e){const e=t instanceof d.HttpResponseError;(e||t instanceof d.HttpParseError)&&(({status:A,headers:y}=t.response),e&&(b=t.responseJson))}else({status:A,data:b,headers:y}=t);(0,ce.isObject)(b)&&({code:h,message:m}=b),y instanceof Headers&&(g=y.get("x-b3-traceid"),v=y.get("content-length")),a={st:c,_ver:c,uid:p,username:f,time:l,et:o,page:location.href,duration:r-u,api:s,type:"api",code:null!=h?h:-1,msg:null!=m?m:"",status:A,traceId:null!=g?g:"",size:v?Number(v):-1},it?Qe.push({...a,type:"apiRequest",...it}):at.push(a)}var a;return e?Promise.reject(t):t}function ht(){const e=Math.round(performance.now()),t=Date.now();return at.length=0,it=null,function(n){let{status:r,path:o,pageTitle:i}=n;if("ok"!==r)return Qe.push(...at),void(at.length=0);const s=Math.round(performance.now())-e,a=Date.now(),{username:c}=w();(function(e){const t=function(){const e=URL.createObjectURL(new Blob([]));let t=e.substring(e.lastIndexOf("/")+1);return URL.revokeObjectURL(e),st&&(t="88-"+t,st=!1),t}(),{lt:n,route:r}=e;it={lt:n,route:r,pageId:t},Qe.push({...e,pageId:t,apiCount:at.length,maxApiTimeCost:Math.max(0,...at.map((e=>e.duration))),size:at.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)});for(const e of at)Qe.push({...e,...it});at.length=0,rt.emit()})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:a,lt:s,pageTitle:i,username:c,route:o}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:s}}))}}const mt=Object.freeze({checkPermissions:function(){if(!b())return!1;if(w().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(const e of t)switch(C.get(e)){case"unauthorized":case"undefined":return!1;case void 0:return console.error(`Un-checked permission action: "${e}", please make sure the permission to check is defined in permissionsPreCheck.`),!1}return!0},preCheckPermissions:function(e){if(b()&&!w().isAdmin)return _((0,u.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:async function(e,t){if(b()&&!w().isAdmin&&Array.isArray(e.permissionsPreCheck))return _(await t(e.permissionsPreCheck))}}),gt=new class{constructor(){(0,T.A)(this,X),(0,j.A)(this,Y,void 0),(0,j.A)(this,K,{sub:new Map,unsub:new Map}),(0,j.A)(this,Q,new Map)}subscribe(e,t){const n=JSON.stringify(t);return(0,$.A)(X,this,ee).call(this,"sub",e,t,n)}unsubscribe(e){const t=(0,D.A)(Q,this).get(e);if(!t){const t=`The message channel to unsubscribe "${e}" is not found`;return console.error(t),Promise.reject(new Error(t))}const n=JSON.parse(t),r=(0,$.A)(X,this,ee).call(this,"unsub",e,n,t);return(0,D.A)(K,this).sub.delete(t),r.then((()=>{(0,D.A)(Q,this).delete(e)})),r}onMessage(e,t){let n=(0,D.A)(Q,this).get(e),r=!1;return(0,N.A)(X,this,Z).onMessage((o=>{n||(n=(0,D.A)(Q,this).get(e)),n?"MESSAGE.PUSH"===o.event&&function(e,t){const n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp(`^${n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>`${(0,L.escapeRegExp)(t)}[^/]*${(0,L.escapeRegExp)(n)}`))}$`).test(t.topic))}(n,o.payload)&&t(o.payload.message):r||(console.error(`Message channel: "${e}" not found`),r=!0)}))}onClose(e){return(0,N.A)(X,this,Z).onClose(e)}reset(){var e;(0,D.A)(K,this).sub.clear(),(0,D.A)(K,this).unsub.clear(),(0,D.A)(Q,this).clear(),null===(e=(0,D.A)(Y,this))||void 0===e||e.reset()}},vt=function(){const e=(0,h.getV2RuntimeFromDll)();if(e)return Object.freeze((0,L.pick)(e,["authenticate","getAuth","isLoggedIn","logout","addPathToBlackList","isBlockedPath","isBlockedUrl","isBlockedHref"]))}()||r},69740:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(24586);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},86330:(e,t,n)=>{function r(e,t,n,r,o,i,s){try{var a=e[i](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var s=e.apply(t,n);function a(e){r(s,o,i,a,c,"next",e)}function c(e){r(s,o,i,a,c,"throw",e)}a(void 0)}))}}n.d(t,{A:()=>o})}}]);
3
+ //# sourceMappingURL=9118.bee2fa5f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/9118.bee2fa5f.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@next-api-sdk/micro-app-sdk/dist/esm/api/micro_app/permission/validatePermissions.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/auth.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/checkPermissions.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/websocket/MessageService.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/websocket/MessageDispatcher.js","webpack:///../../node_modules/@next-api-sdk/micro-app-standalone-sdk/dist/esm/api/micro_app_standalone/runtime/searchMicroAppStandalone.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/checkInstalledApps.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/FlowApiProvider.js","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/contract_center/batchSearchContract.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/CollectContracts.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/flowApi/FlowApi.js","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearch.js","webpack:///../../node_modules/@next-api-sdk/micro-app-sdk/dist/esm/api/micro_app/installed_micro_app/getMenusInfo.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/constants.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/mergeMenu.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/loadDynamicMenuItems.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/reorderMenuItems.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/computeMenuData.js","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/getDetail.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/fetchMenuTitle.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/fetchMenuById.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/menu/getMenusOfStandaloneApp.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/transport.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/analytics.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/http.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/analytics/pageView.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/index.js","webpack:///../../node_modules/@next-core/easyops-runtime/dist/esm/auth-v2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 校验系统权限\n * @endpoint POST /api/micro_app/v1/permission/validate\n */\nexport var PermissionApi_validatePermissions = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.micro_app.permission.ValidatePermissions@1.0.0 */(yield http.post(\"api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate\", data, options)).data\n );\n });\n return function PermissionApi_validatePermissions(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=validatePermissions.js.map","import { getBasePath, matchPath } from \"@next-core/runtime\";\nimport { createLocation } from \"history\";\nimport { resetPermissionPreChecks } from \"./checkPermissions.js\";\nconst auth = {};\nlet pathBlackListSet = new Set();\n\n/** @internal */\n\n/** @internal */\nexport function authenticate(newAuth) {\n var _newAuth$license;\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n csrfToken: newAuth.csrfToken,\n license: newAuth.license,\n accessToken: newAuth.accessToken,\n userShowValue: newAuth.userShowValue\n });\n pathBlackListSet = new Set((_newAuth$license = newAuth.license) === null || _newAuth$license === void 0 ? void 0 : _newAuth$license.blackList);\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth() {\n return {\n ...auth\n };\n}\n\n/** @internal */\nexport function logout() {\n for (const key of Object.keys(auth)) {\n auth[key] = undefined;\n }\n resetPermissionPreChecks();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn() {\n return auth.username !== undefined;\n}\n\n/**\n * 增加路径黑名单\n */\nexport function addPathToBlackList(path) {\n pathBlackListSet.add(path);\n}\n\n/**\n * 判断一个内部 URL 路径是否被屏蔽。\n */\nexport function isBlockedPath(pathname) {\n return [...pathBlackListSet].some(path => matchPath(pathname, {\n path\n }));\n}\n\n/**\n * 判断一个内部 URL 是否被屏蔽。\n */\nexport function isBlockedUrl(url) {\n const pathname = (typeof url === \"string\" ? createLocation(url) : url).pathname;\n if (typeof pathname !== \"string\") {\n return false;\n }\n return isBlockedPath(pathname);\n}\n\n/**\n * 判断一个 href 是否被屏蔽。\n */\nexport function isBlockedHref(href) {\n const basePath = getBasePath();\n const url = new URL(href, `${location.origin}${basePath}`);\n // 忽略外链地址\n if (url.origin !== location.origin || !url.pathname.startsWith(basePath)) {\n return false;\n }\n // 转换为内部路径\n return isBlockedPath(url.pathname.substring(basePath.length - 1));\n}\n//# sourceMappingURL=auth.js.map","import { scanPermissionActionsInAny, scanPermissionActionsInStoryboard } from \"@next-core/utils/storyboard\";\nimport { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport { getAuth, isLoggedIn } from \"./auth.js\";\nconst checkingPermissions = new Map();\nconst checkedPermissions = [];\nconst permissionMap = new Map();\nexport function preCheckPermissions(storyboard) {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\nexport async function preCheckPermissionsForBrickOrRoute(container, asyncComputeRealValue) {\n if (isLoggedIn() && !getAuth().isAdmin && Array.isArray(container.permissionsPreCheck)) {\n const actions = await asyncComputeRealValue(container.permissionsPreCheck);\n return validatePermissions(actions);\n }\n}\nexport function preCheckPermissionsForAny(data) {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\nexport async function validatePermissions(usedActions) {\n // Do not request known actions.\n const uncheckedActions = usedActions.filter(action => !checkedPermissions.includes(action));\n if (uncheckedActions.length === 0) {\n return;\n }\n const checkingTasks = [];\n const restActions = [];\n for (const action of uncheckedActions) {\n const promise = checkingPermissions.get(action);\n if (promise) {\n checkingTasks.push(promise);\n } else {\n restActions.push(action);\n }\n }\n if (restActions.length > 0) {\n const task = (async () => {\n try {\n const result = await PermissionApi_validatePermissions({\n actions: restActions\n }, {\n noAbortOnRouteChange: true\n });\n for (const item of result.actions) {\n permissionMap.set(item.action, item.authorizationStatus);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n } finally {\n checkedPermissions.push(...restActions);\n }\n })();\n for (const action of restActions) {\n checkingPermissions.set(action, task);\n }\n checkingTasks.push(task);\n }\n await Promise.all(checkingTasks);\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions() {\n if (!isLoggedIn()) {\n return false;\n }\n if (getAuth().isAdmin) {\n return true;\n }\n for (var _len = arguments.length, actions = new Array(_len), _key = 0; _key < _len; _key++) {\n actions[_key] = arguments[_key];\n }\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(`Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`);\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks() {\n checkingPermissions.clear();\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n//# sourceMappingURL=checkPermissions.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nconst RETRY_TIMEOUT_UNIT = 1000;\nexport const RETRY_LIMIT = 5;\nvar _url = /*#__PURE__*/new WeakMap();\nvar _ws = /*#__PURE__*/new WeakMap();\nvar _queuedMessages = /*#__PURE__*/new WeakMap();\nvar _messageListeners = /*#__PURE__*/new WeakMap();\nvar _closeListeners = /*#__PURE__*/new WeakMap();\nvar _retryCount = /*#__PURE__*/new WeakMap();\nvar _closed = /*#__PURE__*/new WeakMap();\nvar _MessageService_brand = /*#__PURE__*/new WeakSet();\nexport class MessageService {\n constructor(url) {\n _classPrivateMethodInitSpec(this, _MessageService_brand);\n _classPrivateFieldInitSpec(this, _url, void 0);\n _classPrivateFieldInitSpec(this, _ws, void 0);\n _classPrivateFieldInitSpec(this, _queuedMessages, []);\n _classPrivateFieldInitSpec(this, _messageListeners, new Set());\n _classPrivateFieldInitSpec(this, _closeListeners, new Set());\n _classPrivateFieldInitSpec(this, _retryCount, 0);\n _classPrivateFieldInitSpec(this, _closed, false);\n _classPrivateFieldSet(_url, this, url);\n }\n send(data) {\n // Connect when data is sent for the first time\n if (!_classPrivateFieldGet(_ws, this)) {\n _classPrivateFieldSet(_ws, this, _assertClassBrand(_MessageService_brand, this, _connect).call(this));\n }\n const stringifiedData = JSON.stringify(data);\n if (_classPrivateFieldGet(_ws, this).readyState === WebSocket.OPEN) {\n _classPrivateFieldGet(_ws, this).send(stringifiedData);\n } else {\n _classPrivateFieldGet(_queuedMessages, this).push(stringifiedData);\n }\n }\n onMessage(listener) {\n _classPrivateFieldGet(_messageListeners, this).add(listener);\n return () => {\n _classPrivateFieldGet(_messageListeners, this).delete(listener);\n };\n }\n onClose(listener) {\n _classPrivateFieldGet(_closeListeners, this).add(listener);\n return () => {\n _classPrivateFieldGet(_closeListeners, this).delete(listener);\n };\n }\n reset() {\n _classPrivateFieldGet(_queuedMessages, this).length = 0;\n _classPrivateFieldGet(_messageListeners, this).clear();\n _classPrivateFieldGet(_closeListeners, this).clear();\n }\n close() {\n var _classPrivateFieldGet2;\n _classPrivateFieldSet(_closed, this, true);\n if (((_classPrivateFieldGet2 = _classPrivateFieldGet(_ws, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.readyState) === WebSocket.OPEN) {\n _classPrivateFieldGet(_ws, this).close();\n }\n }\n}\nfunction _connect() {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket connecting ...\");\n const ws = new WebSocket(_classPrivateFieldGet(_url, this));\n let resetRetryCountTimeout;\n ws.addEventListener(\"open\", e => {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket open:\", e);\n\n // If server closes the socket not more than 1 second after it's opened,\n // we should not reset the retry count.\n resetRetryCountTimeout = setTimeout(() => {\n resetRetryCountTimeout = undefined;\n _classPrivateFieldSet(_retryCount, this, 0);\n }, 1e3);\n for (const msg of _classPrivateFieldGet(_queuedMessages, this)) {\n ws.send(msg);\n }\n _classPrivateFieldGet(_queuedMessages, this).length = 0;\n });\n ws.addEventListener(\"close\", e => {\n if (_classPrivateFieldGet(_closed, this)) {\n return;\n }\n if (resetRetryCountTimeout !== undefined) {\n clearTimeout(resetRetryCountTimeout);\n }\n // eslint-disable-next-line no-console\n console.log(\"WebSocket close:\", e);\n // Error code 1000 means that the connection was closed normally.\n if (e.code !== 1000) {\n _assertClassBrand(_MessageService_brand, this, _reconnect).call(this);\n }\n });\n ws.addEventListener(\"error\", e => {\n // No need to reconnect in error event listener,\n // there will always be a close event along with the error event.\n // eslint-disable-next-line no-console\n console.error(\"WebSocket error:\", e);\n });\n ws.addEventListener(\"message\", e => {\n const response = JSON.parse(e.data);\n for (const listener of _classPrivateFieldGet(_messageListeners, this)) {\n listener(response);\n }\n });\n return ws;\n}\nfunction _reconnect() {\n // istanbul ignore next: currently can't mock this\n if (_classPrivateFieldGet(_retryCount, this) >= RETRY_LIMIT) {\n // eslint-disable-next-line no-console\n console.error(\"WebSocket connect retry limit exceeded\");\n // Keep behavior as v2: emit close event only after retry limit exceeded\n for (const listener of _classPrivateFieldGet(_closeListeners, this)) {\n listener();\n }\n return;\n }\n // Double the timeout for each retry\n const delay = Math.pow(2, _classPrivateFieldGet(_retryCount, this)) * RETRY_TIMEOUT_UNIT;\n // eslint-disable-next-line no-console\n console.log(\"WebSocket will reconnect after %d seconds\", delay / 1000);\n setTimeout(() => {\n var _this$retryCount, _this$retryCount2;\n _classPrivateFieldSet(_retryCount, this, (_this$retryCount = _classPrivateFieldGet(_retryCount, this), _this$retryCount2 = _this$retryCount++, _this$retryCount)), _this$retryCount2;\n _classPrivateFieldSet(_ws, this, _assertClassBrand(_MessageService_brand, this, _connect).call(this));\n }, delay);\n}\n//# sourceMappingURL=MessageService.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateGetter from \"@babel/runtime/helpers/classPrivateGetter\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { escapeRegExp } from \"lodash\";\nimport { MessageService, RETRY_LIMIT } from \"./MessageService.js\";\nvar _ms = /*#__PURE__*/new WeakMap();\nvar _memoizedChannels = /*#__PURE__*/new WeakMap();\nvar _channelPayloads = /*#__PURE__*/new WeakMap();\nvar _MessageDispatcher_brand = /*#__PURE__*/new WeakSet();\nexport class MessageDispatcher {\n constructor() {\n _classPrivateMethodInitSpec(this, _MessageDispatcher_brand);\n _classPrivateFieldInitSpec(this, _ms, void 0);\n _classPrivateFieldInitSpec(this, _memoizedChannels, {\n sub: new Map(),\n unsub: new Map()\n });\n _classPrivateFieldInitSpec(this, _channelPayloads, new Map());\n }\n subscribe(channel, payload) {\n const stringifiedPayload = JSON.stringify(payload);\n return _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, \"sub\", channel, payload, stringifiedPayload);\n }\n unsubscribe(channel) {\n const stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n if (!stringifiedPayload) {\n const msg = `The message channel to unsubscribe \"${channel}\" is not found`;\n // eslint-disable-next-line no-console\n console.error(msg);\n return Promise.reject(new Error(msg));\n }\n const payload = JSON.parse(stringifiedPayload);\n const result = _assertClassBrand(_MessageDispatcher_brand, this, _subOrUnsub).call(this, \"unsub\", channel, payload, stringifiedPayload);\n _classPrivateFieldGet(_memoizedChannels, this).sub.delete(stringifiedPayload);\n result.then(() => {\n _classPrivateFieldGet(_channelPayloads, this).delete(channel);\n });\n return result;\n }\n onMessage(channel, listener) {\n let stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n let warned = false;\n return _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {\n if (!stringifiedPayload) {\n stringifiedPayload = _classPrivateFieldGet(_channelPayloads, this).get(channel);\n }\n if (!stringifiedPayload) {\n if (!warned) {\n // eslint-disable-next-line no-console\n console.error(`Message channel: \"${channel}\" not found`);\n warned = true;\n }\n return;\n }\n if (response.event === \"MESSAGE.PUSH\" && matchMessageChannel(stringifiedPayload, response.payload)) {\n listener(response.payload.message);\n }\n });\n }\n onClose(listener) {\n return _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onClose(listener);\n }\n reset() {\n var _classPrivateFieldGet2;\n _classPrivateFieldGet(_memoizedChannels, this).sub.clear();\n _classPrivateFieldGet(_memoizedChannels, this).unsub.clear();\n _classPrivateFieldGet(_channelPayloads, this).clear();\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_ms, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.reset();\n }\n}\nfunction _get_ms(_this) {\n if (!_classPrivateFieldGet(_ms, _this)) {\n const protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n const url = `${protocol}//${window.location.host}${getBasePath()}api/websocket_service/v1/ws`;\n _classPrivateFieldSet(_ms, _this, new MessageService(url));\n }\n return _classPrivateFieldGet(_ms, _this);\n}\nfunction _subOrUnsub(type, channel, payload, stringifiedPayload) {\n const hit = _classPrivateFieldGet(_memoizedChannels, this)[type].get(stringifiedPayload);\n if (hit) {\n return hit;\n }\n const request = {\n event: type === \"sub\" ? \"TOPIC.SUB\" : \"TOPIC.UNSUB\",\n payload\n };\n const promise = new Promise((resolve, reject) => {\n const identity = getIdentity(payload);\n const disposeOnMessage = _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onMessage(response => {\n const isSuccess = response.event === (type === \"sub\" ? \"TOPIC.SUB_SUCCESS\" : \"TOPIC.UNSUB_SUCCESS\");\n const isFailed = response.event === (type === \"sub\" ? \"TOPIC.SUB_FAILED\" : \"TOPIC.UNSUB_FAILED\");\n if ((isSuccess || isFailed) &&\n // Put this after event type checks, to prevent unnecessary\n // JSON stringify.\n identity === getIdentity(response.payload)) {\n (isSuccess ? resolve : reject)(response);\n disposeOnMessage();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n disposeOnClose();\n }\n });\n // istanbul ignore next: currently can't mock this\n const disposeOnClose = _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).onClose(() => {\n // V2 will emit error callback for sub/unsub each time connect failed,\n // while v3 will emit only once after retry limit exceeded.\n // Keep the `EVENT.detail.retryCount` for compatibility.\n reject({\n retryCount: RETRY_LIMIT\n });\n disposeOnMessage();\n disposeOnClose();\n });\n _classPrivateGetter(_MessageDispatcher_brand, this, _get_ms).send(request);\n });\n if (type === \"sub\") {\n _classPrivateFieldGet(_channelPayloads, this).set(channel, stringifiedPayload);\n }\n _classPrivateFieldGet(_memoizedChannels, this)[type].set(stringifiedPayload, promise);\n return promise;\n}\nfunction getIdentity(payload) {\n const {\n system,\n topic\n } = payload;\n return JSON.stringify({\n system,\n topic\n });\n}\nfunction matchMessageChannel(stringifiedPayload, responsePayload) {\n const payload = JSON.parse(stringifiedPayload);\n return payload.system === responsePayload.system && (\n // Exact match\n payload.topic === responsePayload.topic ||\n // Wildcards match\n // For `ab.cd.*`:\n // - Matches `ab.cd.r` or `ab.cd.x.yz`\n // - DOES NOT match `ab.cd.x/yz` or `ab.x.cd` or `x.ab.cd.yz`\n typeof payload.topic === \"string\" && payload.topic.includes(\"*\") && new RegExp(`^${payload.topic.replace(/([^*]*)\\*([^*]*)/g, (_m, p1, p2) => `${escapeRegExp(p1)}[^/]*${escapeRegExp(p2)}`)}$`).test(responsePayload.topic));\n}\n//# sourceMappingURL=MessageDispatcher.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 查询独立部署小产品\n * @endpoint POST /api/v1/micro_app_standalone/search\n */\nexport var RuntimeApi_searchMicroAppStandalone = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.micro_app_standalone.runtime.SearchMicroAppStandalone@1.0.1 */(yield http.post(\"api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search\", data, options)).data\n );\n });\n return function RuntimeApi_searchMicroAppStandalone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=searchMicroAppStandalone.js.map","import { traverseStoryboardExpressions, collectInstalledAppsHasUsage } from \"@next-core/utils/storyboard\";\nimport { RuntimeApi_searchMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nconst checkingApps = new Map();\nconst checkedApps = new Map();\nexport function preCheckInstalledApps(storyboard, hasAppInBootstrap) {\n if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {\n const appIds = scanInstalledAppsUsage(storyboard);\n const searchIds = [];\n for (const appId of appIds) {\n // Do not check these apps already checking or in bootstrap.\n if (!checkingApps.has(appId) && !hasAppInBootstrap(appId)) {\n searchIds.push(appId);\n }\n }\n if (searchIds.length === 0) {\n return;\n }\n const promise = RuntimeApi_searchMicroAppStandalone({\n query: {\n appId: {\n $in: searchIds\n }\n },\n fields: [\"appId\", \"currentVersion\", \"installStatus\"]\n }, {\n noAbortOnRouteChange: true\n }).catch(error => {\n // Allow search micro app to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Get off site standalone micro-apps failed\", error);\n });\n for (const appId of searchIds) {\n checkingApps.set(appId, promise.then(result => {\n var _result$list;\n const app = result === null || result === void 0 || (_result$list = result.list) === null || _result$list === void 0 ? void 0 : _result$list.find(item => item.appId === appId);\n const checkedApp = app ? {\n ...app,\n id: appId\n } : undefined;\n checkedApps.set(appId, checkedApp);\n return checkedApp;\n }));\n }\n }\n}\nexport async function waitForCheckingApps(appIds) {\n await Promise.all(appIds.map(appId => checkingApps.get(appId)));\n}\nexport function getCheckedApp(appId) {\n if (window.STANDALONE_MICRO_APPS) {\n return checkedApps.get(appId);\n }\n}\nfunction scanInstalledAppsUsage(storyboard) {\n var _storyboard$meta;\n const usage = {\n usedArgs: new Set()\n };\n // `INSTALLED_APPS.has(...)` is not available in storyboard functions\n const {\n customTemplates,\n menus\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates, menus], (node, parent) => {\n collectInstalledAppsHasUsage(usage, node, parent);\n }, \"INSTALLED_APPS\");\n return [...usage.usedArgs];\n}\n//# sourceMappingURL=checkInstalledApps.js.map","import { createProviderClass } from \"@next-core/utils/general\";\nimport { http } from \"@next-core/http\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { createSSEStream } from \"@next-core/utils/general\";\nexport const FLOW_API_PROVIDER = \"core.provider-flow-api\";\nfunction hasFields(ext_fields, type) {\n return ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.some(item => item.source === type);\n}\nexport function processExtFields(ext_fields) {\n const hasQueryParams = hasFields(ext_fields, \"query\");\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 if (hasQueryParams) {\n const hasBodyParams = hasFields(ext_fields, \"body\");\n if (hasBodyParams) {\n // NOTE: The args order here is different from generated SDK,\n // in SDK, it's [params, data, options]\n // But we keep the current behavior for compatibility.\n const [data, params, options] = args;\n return {\n data: data,\n options: {\n params: params,\n ...options\n }\n };\n }\n const [params, options] = args;\n return {\n data: {},\n options: {\n params: params,\n ...options\n }\n };\n }\n\n // only hasBodyParams or default\n const [data, options] = args;\n return {\n data,\n options: options\n };\n}\nexport function hasFileType(request) {\n if ((request === null || request === void 0 ? void 0 : request.type) !== \"object\") {\n return false;\n }\n const processFields = fields => {\n return !isEmpty(fields) && fields.some(field => [\"file\", \"file[]\"].includes(field.type) || processFields(field.fields));\n };\n return processFields(request.fields);\n}\nexport function transformFormData(data) {\n if (data instanceof FormData) {\n return data;\n }\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n formData.append(key, v);\n });\n } else if (isObject(value) && !(value instanceof Blob) && !(value instanceof Date)) {\n Object.entries(value).forEach(_ref => {\n let [k, v] = _ref;\n formData.append(`${key}[${k}]`, v);\n });\n } else {\n formData.append(key, value);\n }\n }\n return formData;\n}\nexport async function callFlowApi(_ref2) {\n let {\n url,\n originalUri,\n method = \"GET\",\n responseWrapper = true,\n ext_fields,\n request,\n isFileType,\n stream\n } = _ref2;\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(method.toLowerCase());\n const defaultOptions = isFileType ? {\n responseType: \"blob\"\n } : {};\n let response;\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (isSimpleRequest) {\n var _originalUri$match$le, _originalUri$match, _request$fields$lengt, _request$fields;\n const noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === \"object\" && ((_originalUri$match$le = (_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) !== null && _originalUri$match$le !== void 0 ? _originalUri$match$le : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0);\n let params;\n let options;\n if (noParams) {\n [options] = args;\n } else {\n [params, options] = args;\n }\n if (stream) {\n var _options$headers, _options;\n const stream = await createSSEStream(http.getUrlWithParams(url, params), {\n ...defaultOptions,\n ...options,\n method,\n headers: Object.fromEntries([...new Headers((_options$headers = (_options = options) === null || _options === void 0 ? void 0 : _options.headers) !== null && _options$headers !== void 0 ? _options$headers : {}).entries()])\n });\n return stream;\n }\n response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...options\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n const data = isUploadType ? transformFormData(result.data) : result.data;\n if (stream) {\n var _result$options;\n const {\n body,\n headers\n } = http.getBodyAndHeaders(data, (_result$options = result.options) === null || _result$options === void 0 ? void 0 : _result$options.headers);\n const stream = await createSSEStream(url, {\n ...defaultOptions,\n ...result.options,\n method,\n headers: Object.fromEntries([...new Headers(headers !== null && headers !== void 0 ? headers : {}).entries()]),\n body\n });\n return stream;\n }\n response = await http.requestWithBody(method, url, data, {\n ...defaultOptions,\n ...result.options\n });\n }\n return (isFileType ? false : responseWrapper) ? response.data : response;\n}\nexport function registerFlowApiProvider() {\n customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));\n}\n//# sourceMappingURL=FlowApiProvider.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 批量契约搜索\n * @endpoint POST /api/v1/contract/batch_search\n */\nexport const ContractCenterApi_batchSearchContract = async (data, options) => /**! @contract easyops.api.next_builder.contract_center.BatchSearchContract@1.0.0 */(await http.post(\"api/gateway/next_builder.contract_center.BatchSearchContract/api/v1/contract/batch_search\", data, options)).data;\n//# sourceMappingURL=batchSearchContract.js.map","const contractsMap = new Map();\nconst widgetContractMap = new Map();\nconst debugContractMap = new Map();\nconst addContract = (contracts, map) => {\n contracts === null || contracts === void 0 || contracts.forEach(contract => {\n map.set(`${contract.namespaceId}.${contract.name}`, contract);\n });\n};\nexport function collectContract(contracts) {\n addContract(contracts, contractsMap);\n}\nexport function collectWidgetContract(contracts) {\n addContract(contracts, widgetContractMap);\n}\nexport function clearCollectWidgetContract() {\n widgetContractMap.clear();\n}\nexport function collectDebugContract(contracts) {\n addContract(contracts, debugContractMap);\n}\nexport function clearDebugContract() {\n debugContractMap.clear();\n}\nexport function getContract(name) {\n return contractsMap.get(name) || widgetContractMap.get(name) || debugContractMap.get(name);\n}\n//# sourceMappingURL=CollectContracts.js.map","import yaml from \"js-yaml\";\nimport { ContractCenterApi_batchSearchContract } from \"@next-api-sdk/next-builder-sdk\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { getContract } from \"./CollectContracts.js\";\nconst remoteContractCache = new Map();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider) {\n return provider.includes(\"@\");\n}\nexport async function getArgsOfFlowApi(provider, originalArgs, method, stream) {\n if (!provider.includes(\":\")) {\n throw new Error(`You're using legacy Custom API \"${provider}\" which is dropped in v3, please use Flow API instead`);\n }\n const apiDefinition = await fetchFlowApiDefinition(provider);\n if (!apiDefinition) {\n throw new FlowApiNotFoundError(`Flow API not found: \"${provider}\"`);\n }\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method, stream);\n}\nfunction getApiArgsFromApiProfile(api, originalArgs, method, stream) {\n const {\n uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n isFileType,\n request\n } = api;\n // `saveAs` requires the first argument to be the filename.\n const isDownload = method === \"saveAs\";\n let filename;\n let fixedArgs = originalArgs;\n if (isDownload) {\n if (Array.isArray(originalArgs)) {\n fixedArgs = originalArgs.slice();\n filename = fixedArgs.shift();\n } else {\n filename = originalArgs.filename;\n }\n }\n const {\n url,\n args\n } = getTransformedUriAndRestArgs(api, fixedArgs);\n return [...(isDownload ? [filename] : []), {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n stream\n }, ...args];\n}\nfunction getTransformedUriAndRestArgs(api, originalArgs) {\n const {\n uri,\n name,\n namespace,\n serviceName,\n version,\n method = \"GET\",\n request,\n ext_fields\n } = api;\n const prefix = version ? serviceName === \"logic.api.gateway\" || serviceName !== null && serviceName !== void 0 && serviceName.startsWith(\"logic.api.gateway.\") ? \"\" : serviceName ? `api/gateway/${serviceName}` : `api/gateway/${namespace}.${name}@${version}` : `api/gateway/api_service.${namespace}.${name}`;\n let transformedUri;\n let restArgs = [];\n if (Array.isArray(originalArgs)) {\n restArgs = originalArgs.slice();\n transformedUri = uri.replace(/:([^/]+)/g, () => restArgs.shift());\n } else {\n const restParams = {\n ...originalArgs.params\n };\n transformedUri = uri.replace(/:([^/]+)/g, (_, key) => {\n if (hasOwnProperty(restParams, key)) {\n const value = restParams[key];\n delete restParams[key];\n return value;\n }\n throw new Error(`Missing required param: \"${key}\"`);\n });\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(method.toLowerCase());\n if (isSimpleRequest) {\n var _uri$match$length, _uri$match, _request$fields$lengt, _request$fields;\n const noParams = (request === null || request === void 0 ? void 0 : request.type) === \"object\" && ((_uri$match$length = (_uri$match = uri.match(/:([^/]+)/g)) === null || _uri$match === void 0 ? void 0 : _uri$match.length) !== null && _uri$match$length !== void 0 ? _uri$match$length : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0);\n if (!noParams) {\n restArgs.push(restParams);\n }\n } else {\n const bodyField = ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.find(item => item.source === \"body\");\n if (bodyField) {\n let body;\n if (bodyField.name && hasOwnProperty(restParams, bodyField.name)) {\n body = restParams[bodyField.name];\n delete restParams[bodyField.name];\n }\n restArgs.push(body);\n }\n const queryField = ext_fields === null || ext_fields === void 0 ? void 0 : ext_fields.find(item => item.source === \"query\");\n if (queryField) {\n let query;\n if (queryField.name && hasOwnProperty(restParams, queryField.name)) {\n query = restParams[queryField.name];\n delete restParams[queryField.name];\n }\n restArgs.push(query);\n }\n if (!bodyField && !queryField) {\n restArgs.push(restParams);\n }\n }\n if (originalArgs.options) {\n restArgs.push(originalArgs.options);\n }\n }\n return {\n url: prefix ? prefix + transformedUri : transformedUri.replace(/^\\//, \"\"),\n args: restArgs\n };\n}\nfunction getApiProfileFromApiDefinition(provider, api) {\n var _contract$endpoint, _contract$response;\n const contract = typeof api.contract === \"string\" ? yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true\n }) : api.contract;\n const {\n uri,\n method = \"GET\",\n ext_fields\n } = (_contract$endpoint = contract === null || contract === void 0 ? void 0 : contract.endpoint) !== null && _contract$endpoint !== void 0 ? _contract$endpoint : {};\n const responseWrapper = contract !== null && contract !== void 0 && contract.response ? contract.response.wrapper !== false : false;\n if (!uri) {\n throw new Error(`Missing endpoint.uri in contract of provider \"${provider}\"`);\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: (contract === null || contract === void 0 || (_contract$response = contract.response) === null || _contract$response === void 0 ? void 0 : _contract$response.type) === \"file\",\n responseWrapper,\n request: contract === null || contract === void 0 ? void 0 : contract.request\n };\n}\nasync function fetchFlowApiDefinition(provider) {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n // Do not cache the result of `getContract`, which will lead to no contract\n // will be found when render twice immediately.\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request\n }\n };\n }\n let promise = remoteContractCache.get(provider);\n if (!promise) {\n promise = fetchFlowApiDefinitionFromRemote(namespaceName, name, version);\n remoteContractCache.set(provider, promise);\n }\n return promise;\n}\nasync function fetchFlowApiDefinitionFromRemote(namespace, name, version) {\n let contractData;\n const fullContractName = `${namespace}@${name}`;\n let error;\n try {\n const {\n list: contractList\n } = await ContractCenterApi_batchSearchContract({\n contract: [{\n fullContractName,\n version\n }]\n });\n contractData = contractList[0];\n } catch (e) {\n error = e;\n }\n if (!contractData) {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch Flow API definition for \"${fullContractName}:${version}\"`, error !== null && error !== void 0 ? error : \"Contract not found\");\n return null;\n }\n return {\n name: contractData.name,\n namespace: contractData.namespaceId,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request\n }\n };\n}\nclass FlowApiNotFoundError extends Error {\n constructor(message) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n this.name = \"FlowApiNotFoundError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FlowApiNotFoundError);\n }\n }\n}\n//# sourceMappingURL=FlowApi.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例\n * @endpoint POST /object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearch = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearch@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearch/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearch(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearch.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取菜单信息\n * @endpoint GET /api/v1/micro-app/menus/:menuId\n */\nexport var InstalledMicroAppApi_getMenusInfo = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (menuId, params, options) {\n return (/**! @contract easyops.api.micro_app.installed_micro_app.GetMenusInfo@1.0.0 */(yield http.get(\"api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/\".concat(menuId), _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function InstalledMicroAppApi_getMenusInfo(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getMenusInfo.js.map","export const symbolAppId = Symbol(\"appId\");\nexport const symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nexport const symbolOverrideApp = Symbol(\"overrideApp\");\n//# sourceMappingURL=constants.js.map","import { i18n } from \"@next-core/i18n\";\nimport { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from \"./constants.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\nexport async function mergeMenu(menuList, runtimeContext, helpers) {\n const mainMenu = menuList.find(menu => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList = [];\n const injectWithMenus = new Map();\n const menuWithI18n = new WeakMap();\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = `menu/${menu.menuId}~${menu.app[0].appId}+${menu.instanceId}`;\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(_ref => {\n let [lang, resources] = _ref;\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n await Promise.all(menuList.map(menu => loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers)));\n for (const menu of menuList) {\n var _menu$items;\n if ((_menu$items = menu.items) !== null && _menu$items !== void 0 && _menu$items.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n return {\n ...mainMenu,\n items: validMenuList.flatMap(menu =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp\n };\n}\nfunction processGroupInject(items, menu, injectWithMenus, menuWithI18n) {\n return items === null || items === void 0 ? void 0 : items.map(item => {\n var _processGroupInject;\n const foundInjectingMenus = item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId);\n }\n return {\n ...item,\n children: ((_processGroupInject = processGroupInject(item.children, menu, injectWithMenus, menuWithI18n)) !== null && _processGroupInject !== void 0 ? _processGroupInject : []).concat(foundInjectingMenus ? foundInjectingMenus.flatMap(injectingMenu =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(injectingMenu.items, injectingMenu, injectWithMenus, menuWithI18n)) : []),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp\n };\n });\n}\n//# sourceMappingURL=mergeMenu.js.map","import { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nexport async function loadDynamicMenuItems(menu, runtimeContext, menuWithI18n, helpers) {\n if (menu.dynamicItems && menu.itemsResolve) {\n const overrideAppId = menu.app[0].appId;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny(menu.itemsResolve)]\n };\n if (overrideAppId !== runtimeContext.app.id) {\n var _helpers$getStoryboar;\n newRuntimeContext.overrideApp = window.STANDALONE_MICRO_APPS ? menu.overrideApp : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;\n newRuntimeContext.appendI18nNamespace = menuWithI18n.get(menu);\n }\n const resolved = await helpers.resolveData({\n transform: \"items\",\n ...menu.itemsResolve\n }, newRuntimeContext);\n menu.items = resolved.items;\n }\n}\n//# sourceMappingURL=loadDynamicMenuItems.js.map","import { sortBy } from \"lodash\";\nexport function reorderMenu(menuData) {\n menuData.items = reorderMenuItems(menuData.items);\n}\nfunction reorderMenuItems(list) {\n return sortMenuItems(list).map(item => ({\n ...item,\n children: reorderMenuItems(item.children)\n }));\n}\nfunction sortMenuItems(list) {\n return sortBy(list, item => {\n var _item$sort;\n return (_item$sort = item.sort) !== null && _item$sort !== void 0 ? _item$sort : -Infinity;\n });\n}\n//# sourceMappingURL=reorderMenuItems.js.map","import { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from \"./constants.js\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { pipes } from \"@next-core/pipes\";\nimport { isEvaluable } from \"@next-core/cook\";\nexport function computeMenuData(data, overrideAppId, runtimeContext, helpers) {\n if (\"titleDataSource\" in data && isObject(data.titleDataSource) && Object.entries(data.titleDataSource).every(_ref => {\n let [, value] = _ref;\n return value === null || value === \"\";\n })) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n if (\"to\" in data && data.to && !isEvaluable(data.to)) {\n const yaml = pipes.yaml(data.to);\n if (isObject(yaml) && [\"pathname\", \"search\", \"hash\"].some(key => hasOwnProperty(yaml, key))) {\n data.to = yaml;\n }\n }\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n var _helpers$getStoryboar;\n const overrideApp = window.STANDALONE_MICRO_APPS ? data[symbolOverrideApp] : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace]\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true\n });\n}\nexport function computeMenuItems(items, runtimeContext, helpers) {\n return Promise.all(items.map(async _ref2 => {\n let {\n children,\n ...rest\n } = _ref2;\n const [computedRest, computedChildren] = await Promise.all([computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers), children && (await computeMenuItems(children, runtimeContext, helpers))]);\n return {\n ...computedRest,\n children: computedChildren\n };\n }));\n}\n//# sourceMappingURL=computeMenuData.js.map","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取实例详情\n * @endpoint GET /object/:objectId/instance/:instanceId\n */\nexport var InstanceApi_getDetail = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, instanceId, params, options) {\n return (/**! @contract easyops.api.cmdb.instance.GetDetail@1.0.0 */(yield http.get(\"api/gateway/cmdb.instance.GetDetail/object/\".concat(objectId, \"/instance/\").concat(instanceId), _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function InstanceApi_getDetail(_x, _x2, _x3, _x4) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getDetail.js.map","import { isEmpty } from \"lodash\";\nimport { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nconst menuTitleCache = new Map();\nexport async function fetchMenuTitle(menuData) {\n if (menuData.title || isEmpty(menuData.titleDataSource)) {\n return menuData.title;\n }\n const cacheKey = JSON.stringify(menuData.titleDataSource);\n const cachedTitle = menuTitleCache.get(cacheKey);\n if (cachedTitle !== undefined) {\n return cachedTitle;\n }\n const {\n objectId,\n instanceId,\n attributeId\n } = menuData.titleDataSource;\n const attr = attributeId !== null && attributeId !== void 0 ? attributeId : \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr\n });\n let title;\n if (attributeId === \"#showKey\" && Array.isArray(instanceData[attr])) {\n const [primary, ...rest] = instanceData[attr];\n title = rest.length > 0 ? `${primary}(${rest.join(\",\")})` : String(primary);\n } else {\n title = String(instanceData[attr]);\n }\n menuTitleCache.set(cacheKey, title);\n return title;\n}\n//# sourceMappingURL=fetchMenuTitle.js.map","import { InstanceApi_postSearch } from \"@next-api-sdk/cmdb-sdk\";\nimport { InstalledMicroAppApi_getMenusInfo } from \"@next-api-sdk/micro-app-sdk\";\nimport { omit, pick } from \"lodash\";\nimport { checkIfOfComputed } from \"@next-core/runtime\";\nimport { mergeMenu } from \"./mergeMenu.js\";\nimport { reorderMenu } from \"./reorderMenuItems.js\";\nimport { computeMenuItems, computeMenuData } from \"./computeMenuData.js\";\nimport { fetchMenuTitle } from \"./fetchMenuTitle.js\";\nimport { getMenusOfStandaloneApp } from \"./getMenusOfStandaloneApp.js\";\nimport { preCheckPermissionsForAny } from \"../checkPermissions.js\";\nimport { isBlockedHref, isBlockedUrl } from \"../auth.js\";\nconst menuPromises = new Map();\nconst menuCache = new Map();\nfunction transformMenuItems(menuItems) {\n return menuItems === null || menuItems === void 0 ? void 0 : menuItems.filter(checkIfOfComputed).map(item => {\n const children = transformMenuItems(item.children);\n const transformedMenuItem = item.type === \"group\" ? {\n type: \"group\",\n title: item.text,\n childLayout: item.childLayout,\n items: children,\n groupId: item.groupId,\n groupFrom: item.groupFrom\n } : children !== null && children !== void 0 && children.length ? {\n type: \"subMenu\",\n childLayout: item.childLayout,\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded\n } : isMenuItemBlocked(item) ? null : omit(item, [\"type\", \"items\", \"children\"]);\n return transformedMenuItem;\n }).filter(Boolean);\n}\nfunction isMenuItemBlocked(item) {\n return item.href ? isBlockedHref(item.href) : item.to ? isBlockedUrl(item.to) : false;\n}\nexport function getMenuById(menuId) {\n return menuCache.get(menuId);\n}\nexport function fetchMenuById(menuId, runtimeContext, helpers) {\n let promise = menuPromises.get(menuId);\n if (!promise) {\n promise = _fetchMenuById(menuId, runtimeContext, helpers);\n }\n return promise;\n}\nasync function _fetchMenuById(menuId, runtimeContext, helpers) {\n const menuList = window.STANDALONE_MICRO_APPS ? getMenusOfStandaloneApp(menuId, runtimeContext.app.id, helpers) : runtimeContext.flags[\"three-level-menu-layout\"] ? (await InstalledMicroAppApi_getMenusInfo(menuId, {\n menuObjectId: \"EASYOPS_STORYBOARD_MENU\"\n })).menus : (await InstanceApi_postSearch(\"EASYOPS_STORYBOARD_MENU\", {\n page: 1,\n page_size: 200,\n fields: {\n menuId: true,\n title: true,\n icon: true,\n link: true,\n titleDataSource: true,\n defaultCollapsed: true,\n defaultCollapsedBreakpoint: true,\n type: true,\n injectMenuGroupId: true,\n dynamicItems: true,\n itemsResolve: true,\n items: true,\n i18n: true,\n \"items.children\": true,\n \"app.appId\": true\n },\n query: {\n menuId: {\n $eq: menuId\n },\n app: {\n $size: {\n $gt: 0\n }\n }\n }\n })).list;\n const menuData = await mergeMenu(menuList, runtimeContext, helpers);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n reorderMenu(menuData);\n const {\n items,\n app,\n ...restMenuData\n } = menuData;\n const newRuntimeContext = {\n ...runtimeContext,\n pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny([items, restMenuData])]\n };\n delete newRuntimeContext.tplStateStoreId;\n delete newRuntimeContext.forEachItem;\n delete newRuntimeContext.forEachIndex;\n delete newRuntimeContext.forEachSize;\n const rootAppId = app[0].appId;\n const [computedMenuData, computedMenuItems] = await Promise.all([computeMenuData(restMenuData, rootAppId, newRuntimeContext, helpers), computeMenuItems(items, newRuntimeContext, helpers)]);\n const finalMenuData = {\n title: await fetchMenuTitle(computedMenuData),\n ...pick(computedMenuData, [\"icon\", \"link\", \"defaultCollapsed\", \"defaultCollapsedBreakpoint\"]),\n menuItems: transformMenuItems(computedMenuItems)\n };\n\n // Todo(steve): reconsider the menu cache strategy\n menuCache.set(menuId, finalMenuData);\n}\n//# sourceMappingURL=fetchMenuById.js.map","export function getMenusOfStandaloneApp(menuId, appId, helpers) {\n var _ref, _storyboard$meta$inje, _storyboard$meta, _storyboard$meta2;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storyboard = helpers.getStoryboardByAppId(appId);\n const menus = (_ref = (_storyboard$meta$inje = (_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.injectMenus) !== null && _storyboard$meta$inje !== void 0 ? _storyboard$meta$inje : (_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.menus) !== null && _ref !== void 0 ? _ref : [];\n return menus.filter(menu => menu.menuId === menuId).map(menu => {\n var _menu$app;\n return {\n ...menu,\n ...((_menu$app = menu.app) !== null && _menu$app !== void 0 && (_menu$app = _menu$app[0]) !== null && _menu$app !== void 0 && _menu$app.appId ? {} : {\n app: [{\n appId\n }]\n })\n };\n });\n\n // Todo: maybe: fetch menus from STANDALONE_MENU@EASYOPS\n}\n//# sourceMappingURL=getMenusOfStandaloneApp.js.map","export const events = [];\nconst MAXIMUM_WAITING_TIME = 5 * 1000;\nconst MAXIMUM_LOGGED_EVENTS = 10;\nlet timer = null;\nexport const transportOptions = {\n maxWaitingTime: MAXIMUM_WAITING_TIME,\n maxLoggedEvents: MAXIMUM_LOGGED_EVENTS\n};\nexport function createTransport(api, options) {\n Object.assign(transportOptions, {\n ...options,\n api\n });\n return {\n sendOnExit,\n emit\n };\n}\nfunction nextTime(callback) {\n return (window.requestIdleCallback || window.requestAnimationFrame || (cb => setTimeout(cb, 17)))(callback);\n}\nfunction emit() {\n clearTimeout(timer);\n events.length > transportOptions.maxLoggedEvents ? send() : timer = setTimeout(send, transportOptions.maxWaitingTime);\n}\nfunction send() {\n if (events.length === 0) {\n return;\n }\n const transportEvents = events.splice(0, transportOptions.maxLoggedEvents);\n const transportData = buildTransportData(transportEvents);\n sendBeacon(transportOptions.api, transportData);\n events.length && nextTime(send);\n}\nfunction sendBeacon(requestUrl, data) {\n const headers = {\n type: \"application/json\"\n };\n const blob = new Blob([JSON.stringify(data)], headers);\n window.navigator.sendBeacon(requestUrl, blob);\n}\nfunction sendOnExit() {\n window.addEventListener(\"beforeunload\", send, false);\n}\nfunction buildTransportData(data) {\n return {\n model: \"easyops.FRONTEND_STAT\",\n columns: [\"_ver\", \"st\", \"et\", \"lt\", \"size\", \"time\", \"traceId\", \"code\", \"duration\", \"page\", \"uid\", \"username\", \"api\", \"type\", \"msg\", \"status\", \"pageId\", \"route\", \"apiCount\", \"maxApiTimeCost\", \"apiSizeCost\", \"pageTitle\"],\n data\n };\n}\n//# sourceMappingURL=transport.js.map","import { createTransport, events } from \"./transport.js\";\nlet initialized = false;\nlet transport;\nlet pageState = null;\nlet isFirstPageView = true;\nconst stashedApiMetrics = [];\nexport function initialize(api) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (initialized) {\n return;\n }\n initialized = true;\n if (!transport) {\n transport = createTransport(api, options);\n transport.sendOnExit();\n }\n}\nexport function createPageView() {\n stashedApiMetrics.length = 0;\n pageState = null;\n}\nexport function finishPageView(metric) {\n const pageId = generateUUID();\n const {\n lt,\n route\n } = metric;\n pageState = {\n lt,\n route,\n pageId\n };\n events.push({\n ...metric,\n pageId,\n apiCount: stashedApiMetrics.length,\n maxApiTimeCost: Math.max(0, ...stashedApiMetrics.map(api => api.duration)),\n size: stashedApiMetrics.map(api => api.size).filter(size => size > 0).reduce((prev, current) => prev + current, 0)\n });\n for (const item of stashedApiMetrics) {\n events.push({\n ...item,\n ...pageState\n });\n }\n stashedApiMetrics.length = 0;\n transport.emit();\n}\nexport function earlyFinishPageView() {\n events.push(...stashedApiMetrics);\n stashedApiMetrics.length = 0;\n}\nexport function pushApiMetric(metric) {\n if (pageState) {\n events.push({\n ...metric,\n type: \"apiRequest\",\n ...pageState\n });\n } else {\n stashedApiMetrics.push(metric);\n }\n}\n\n// Ref https://medium.com/teads-engineering/generating-uuids-at-scale-on-the-web-2877f529d2a2\nfunction generateUUID() {\n const url = URL.createObjectURL(new Blob([]));\n let uuid = url.substring(url.lastIndexOf(\"/\") + 1);\n URL.revokeObjectURL(url);\n // 第一次渲染加上特殊标记\n if (isFirstPageView) {\n uuid = \"88-\" + uuid;\n isFirstPageView = false;\n }\n return uuid;\n}\n//# sourceMappingURL=analytics.js.map","import { HttpResponseError, HttpParseError, HttpAbortError } from \"@next-core/http\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { getAuth } from \"../auth.js\";\nimport { pushApiMetric } from \"./analytics.js\";\nconst symbolHttpAnalytics = Symbol(\"HttpAnalytics\");\nexport function onRequest(config) {\n const perfStartTime = Math.round(performance.now());\n const st = Date.now();\n config[symbolHttpAnalytics] = {\n st,\n time: Math.round(st / 1000),\n perfStartTime\n };\n return config;\n}\nexport function onResponse(response, config) {\n return onResponseOrError(false, response, config);\n}\nexport function onResponseError(error, config) {\n return onResponseOrError(true, error, config);\n}\nfunction onResponseOrError(hasError, responseOrError, config) {\n const perfEndTime = Math.round(performance.now());\n const et = Date.now();\n const {\n [symbolHttpAnalytics]: meta,\n url\n } = config;\n if (meta && !(hasError && responseOrError instanceof HttpAbortError)) {\n delete config[symbolHttpAnalytics];\n const {\n st,\n time,\n perfStartTime\n } = meta;\n const {\n userInstanceId: uid,\n username\n } = getAuth();\n let code;\n let message;\n let traceId;\n let size;\n let status;\n let headers;\n let data;\n if (hasError) {\n const isHttpResponseError = responseOrError instanceof HttpResponseError;\n if (isHttpResponseError || responseOrError instanceof HttpParseError) {\n ({\n status,\n headers\n } = responseOrError.response);\n if (isHttpResponseError) {\n data = responseOrError.responseJson;\n }\n }\n } else {\n ({\n status,\n data,\n headers\n } = responseOrError);\n }\n if (isObject(data)) {\n ({\n code,\n message\n } = data);\n }\n if (headers instanceof Headers) {\n traceId = headers.get(\"x-b3-traceid\");\n size = headers.get(\"content-length\");\n }\n pushApiMetric({\n st,\n _ver: st,\n uid,\n username,\n time,\n et,\n page: location.href,\n duration: perfEndTime - perfStartTime,\n api: url,\n type: \"api\",\n code: code !== null && code !== void 0 ? code : -1,\n msg: message !== null && message !== void 0 ? message : \"\",\n status,\n traceId: traceId !== null && traceId !== void 0 ? traceId : \"\",\n size: size ? Number(size) : -1\n });\n }\n return hasError ? Promise.reject(responseOrError) : responseOrError;\n}\n//# sourceMappingURL=http.js.map","import { createPageView, earlyFinishPageView, finishPageView } from \"./analytics.js\";\nimport { getAuth } from \"../auth.js\";\nexport function create() {\n const perfStartTime = Math.round(performance.now());\n const startTime = Date.now();\n createPageView();\n return function finish(_ref) {\n let {\n status,\n path,\n pageTitle\n } = _ref;\n if (status !== \"ok\") {\n earlyFinishPageView();\n return;\n }\n const renderTime = Math.round(performance.now()) - perfStartTime;\n const endTime = Date.now();\n const {\n username\n } = getAuth();\n finishPageView({\n type: \"page\",\n page: location.href,\n _ver: startTime,\n time: Math.round(startTime / 1000),\n st: startTime,\n et: endTime,\n lt: renderTime,\n pageTitle,\n username,\n route: path\n });\n\n // For bricks which would take actions with render time.\n window.dispatchEvent(new CustomEvent(\"route.render\", {\n detail: {\n renderTime\n }\n }));\n };\n}\n//# sourceMappingURL=pageView.js.map","// istanbul ignore file\nimport { checkPermissions as _checkPermissions, preCheckPermissions, preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport { MessageDispatcher } from \"./websocket/MessageDispatcher.js\";\nimport * as authV3 from \"./auth.js\";\nimport { authV2Factory } from \"./auth-v2.js\";\nimport * as _checkInstalledApps from \"./checkInstalledApps.js\";\nexport { _checkInstalledApps as checkInstalledApps };\nimport * as _flowApi from \"./flowApi/index.js\";\nexport { _flowApi as flowApi };\nimport * as _menu from \"./menu/index.js\";\nexport { _menu as menu };\nimport * as _analytics from \"./analytics/index.js\";\nexport { _analytics as analytics };\nexport const checkPermissions = Object.freeze({\n checkPermissions: _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute\n});\nexport const messageDispatcher = new MessageDispatcher();\nexport const auth = authV2Factory() || authV3;\n//# sourceMappingURL=index.js.map","// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(pick(v2Kit, [\"authenticate\", \"getAuth\", \"isLoggedIn\", \"logout\", \"addPathToBlackList\", \"isBlockedPath\", \"isBlockedUrl\", \"isBlockedHref\"]));\n }\n}\n//# sourceMappingURL=auth-v2.js.map","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","PermissionApi_validatePermissions","_ref","data","options","http","post","_x","_x2","apply","this","arguments","auth","pathBlackListSet","Set","authenticate","newAuth","_newAuth$license","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","blackList","getAuth","logout","keys","undefined","checkingPermissions","clear","checkedPermissions","length","permissionMap","isLoggedIn","addPathToBlackList","path","add","isBlockedPath","pathname","some","matchPath","isBlockedUrl","url","createLocation","isBlockedHref","href","basePath","getBasePath","URL","location","origin","startsWith","substring","Map","preCheckPermissionsForAny","validatePermissions","scanPermissionActionsInAny","async","usedActions","uncheckedActions","filter","action","includes","checkingTasks","restActions","promise","get","push","task","result","actions","noAbortOnRouteChange","item","set","authorizationStatus","console","error","Promise","all","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","send","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","onMessage","listener","delete","onClose","reset","close","_classPrivateFieldGet2","log","ws","resetRetryCountTimeout","addEventListener","e","setTimeout","msg","clearTimeout","code","_reconnect","response","parse","delay","Math","pow","_this$retryCount","_ms","_memoizedChannels","_channelPayloads","_MessageDispatcher_brand","_get_ms","_this","protocol","window","host","_subOrUnsub","type","channel","payload","stringifiedPayload","hit","request","event","resolve","reject","identity","getIdentity","disposeOnMessage","isSuccess","isFailed","disposeOnClose","retryCount","system","topic","RuntimeApi_searchMicroAppStandalone","checkingApps","checkedApps","preCheckInstalledApps","storyboard","hasAppInBootstrap","STANDALONE_MICRO_APPS","NO_AUTH_GUARD","appIds","_storyboard$meta","usage","usedArgs","customTemplates","menus","meta","traverseStoryboardExpressions","routes","node","parent","collectInstalledAppsHasUsage","scanInstalledAppsUsage","searchIds","appId","has","query","$in","fields","catch","then","_result$list","app","list","find","checkedApp","id","waitForCheckingApps","map","getCheckedApp","FLOW_API_PROVIDER","hasFields","ext_fields","source","callFlowApi","_ref2","originalUri","method","responseWrapper","isFileType","stream","isSimpleRequest","toLowerCase","defaultOptions","responseType","_len2","args","Array","_key2","_originalUri$match$le","_originalUri$match","_request$fields$lengt","_request$fields","params","_options$headers","_options","match","createSSEStream","getUrlWithParams","headers","fromEntries","Headers","entries","simpleRequest","isUploadType","processFields","isEmpty","field","hasFileType","hasQueryParams","_len","_key","processExtFields","FormData","formData","isArray","forEach","v","append","isObject","Blob","Date","k","transformFormData","_result$options","body","getBodyAndHeaders","requestWithBody","registerFlowApiProvider","customElements","define","createProviderClass","ContractCenterApi_batchSearchContract","contractsMap","widgetContractMap","debugContractMap","addContract","contracts","contract","namespaceId","name","collectContract","collectWidgetContract","clearCollectWidgetContract","collectDebugContract","clearDebugContract","remoteContractCache","isFlowApiProvider","provider","getArgsOfFlowApi","originalArgs","Error","apiDefinition","namespaceName","nameWithVersion","split","version","getContract","namespace","serviceName","endpoint","contractData","fullContractName","contractList","fetchFlowApiDefinitionFromRemote","fetchFlowApiDefinition","FlowApiNotFoundError","apiProfile","api","_contract$endpoint","_contract$response","schema","json","uri","wrapper","getApiProfileFromApiDefinition","apiMethod","isDownload","filename","fixedArgs","slice","shift","prefix","transformedUri","restArgs","replace","restParams","_","hasOwnProperty","_uri$match$length","_uri$match","bodyField","queryField","getTransformedUriAndRestArgs","getApiArgsFromApiProfile","message","super","captureStackTrace","InstanceApi_postSearch","objectId","concat","_x3","InstalledMicroAppApi_getMenusInfo","menuId","symbolAppId","Symbol","symbolMenuI18nNamespace","symbolOverrideApp","mergeMenu","menuList","runtimeContext","helpers","mainMenu","menu","validMenuList","injectWithMenus","menuWithI18n","i18n","menuI18nNamespace","instanceId","lang","resources","addResourceBundle","dynamicItems","itemsResolve","overrideAppId","newRuntimeContext","pendingPermissionsPreCheck","_helpers$getStoryboar","overrideApp","getStoryboardByAppId","appendI18nNamespace","resolved","resolveData","transform","items","loadDynamicMenuItems","_menu$items","injectMenuGroupId","injectingMenus","flatMap","processGroupInject","_processGroupInject","foundInjectingMenus","groupId","children","injectingMenu","reorderMenu","menuData","reorderMenuItems","sortBy","_item$sort","sort","sortMenuItems","computeMenuData","titleDataSource","every","if","to","isEvaluable","yaml","pipes","asyncComputeRealValue","ignoreSymbols","computeMenuItems","rest","computedRest","computedChildren","InstanceApi_getDetail","_x4","menuTitleCache","fetchMenuTitle","title","cacheKey","cachedTitle","attributeId","attr","instanceData","primary","join","String","menuPromises","menuCache","transformMenuItems","menuItems","checkIfOfComputed","text","childLayout","groupFrom","icon","defaultExpanded","isMenuItemBlocked","omit","Boolean","getMenuById","fetchMenuById","_storyboard$meta$inje","_storyboard$meta2","injectMenus","_menu$app","getMenusOfStandaloneApp","flags","menuObjectId","page","page_size","link","defaultCollapsed","defaultCollapsedBreakpoint","$eq","$size","$gt","restMenuData","tplStateStoreId","forEachItem","forEachIndex","forEachSize","rootAppId","computedMenuData","computedMenuItems","finalMenuData","pick","_fetchMenuById","events","timer","transportOptions","maxWaitingTime","maxLoggedEvents","emit","transportData","model","columns","splice","callback","requestUrl","blob","navigator","sendBeacon","requestIdleCallback","requestAnimationFrame","cb","sendOnExit","transport","initialized","pageState","isFirstPageView","stashedApiMetrics","initialize","createTransport","symbolHttpAnalytics","onRequest","config","perfStartTime","round","performance","now","st","time","onResponse","onResponseOrError","onResponseError","hasError","responseOrError","perfEndTime","et","HttpAbortError","uid","traceId","size","status","isHttpResponseError","HttpResponseError","HttpParseError","responseJson","metric","_ver","duration","Number","create","startTime","pageTitle","renderTime","endTime","pageId","createObjectURL","uuid","lastIndexOf","revokeObjectURL","generateUUID","lt","route","apiCount","maxApiTimeCost","max","reduce","prev","current","finishPageView","dispatchEvent","CustomEvent","detail","freeze","checkPermissions","preCheckPermissions","scanPermissionActionsInStoryboard","preCheckPermissionsForBrickOrRoute","container","permissionsPreCheck","messageDispatcher","sub","unsub","subscribe","unsubscribe","warned","responsePayload","RegExp","_m","p1","p2","escapeRegExp","test","matchMessageChannel","v2Kit","getV2RuntimeFromDll","authV2Factory","ownKeys","r","t","getOwnPropertySymbols","o","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","_next","_throw","arg","info","done","_asyncToGenerator","fn","self","err"],"sourceRoot":""}